您现在的位置是:首页 > 后端 > PHP PHP
正则表达式
2020-05-17【PHP】3053人已围观
简介正则表达式一、概述 验证 网络爬虫。 概念: 具有语法格式的字符串。 函数 PCRE 1、perl语言正则语法兼容。(java c) 2、速度快,效率高。 POSIX 1、效率不高 2、安全隐患。
正则表达式
一、概述
验证
网络爬虫。
概念:
具有语法格式的字符串。
函数
PCRE
1、perl语言正则语法兼容。(java c)
2、速度快,效率高。
POSIX
1、效率不高
2、安全隐患。
3、windows无法运行。
二、正则表达式的应用
preg_match_all(string $pattern,string $subject,array $match)
功能:正则匹配
参数:
pattern 正则表达式
subject 要进行匹配的字符串
match 匹配到的结果
返回:匹配到的次数。
语法:
- 定界符
- 原子
- 元字符
- 模式修正符
- 定界符
一个正则表达式必须有定界符。除了数字,字母、下划线,其他都可以作为定界符。而行业中最常用的定积分是 "/",定界符是成对出现的。
- 原子
原子是正则表达式的最小组成单位。一个正则表达式要想有意义,则至少有一个原子。
a、数字、字母、下划线,所有的打印字符都叫原子。
b、非打印字符。
\n 换行
c、需要进行转义的字符。具有特殊含义的字符。例如:元字符
d、具有特殊含义的原子
\d 代表所有的数字
\D 代表了所有的非数字
\w 数字、字母、下划线
\W 非数字、字母、下划线
\s 代表了所有的空白
\S 代表了所有的非空白
e、自定义原子表
[] 指定原子的范围,例如:a-z 代表了所有的小写英文字母
A-Z 代表了所有的大写英文字母
0-9 代表了所有的数字
可以同时给出多个范围,多个范围之间不需要间隔符号。
例如:a-z0-9
在自定义原子表中 ^代表 非
f、. 任意原子
元字符
元字符是用来修饰原子的。
* 代表被修饰的原子可以出现0次或者多次。
+ 代表被修饰的原子可以出现1次或者多次。
?代表被修饰的原子可以出现0次或者1次。
{m} 代表被修饰的原子可以出现m次。
{n,m} 代表被修饰的原子可以出现最少n最多m次。
n<=出现的次数<=m
{n,} 代表被修饰的原子可以出现最少n最对不限制
n<=出现的次数
| 或
^和\A 代表以^和\A修饰的字符的作为开始
$和\Z 代表以$和\Z修饰的字符的作为结束
()
- 子模式
- 改变匹配的范围
- 反向引用
\b和\B \b代表字符边界,\B 代表了非字符边界
正则表达式的应用
匹配、查找、分割、替换
对于普通字符串处理函数和正则表达式字符处理函数,使用的原则:
能用普通字符串处理函数处理的,就不要用正则表达式处理。
原因:
普通字符串处理函数:效率高。简单。
正则表达式处理函数:效率相对低。复杂。功能强大。
匹配、查找
strstr(string $haystack,string $needle)
功能:查找needle在haystack中出现后的字符串
参数:
haystack 元字符串
needle 查找的字符串
返回:出现后的字符串
strpos(string $haystack,string $needle)
功能:在haystack查找needle首次出现的位置
参数:
haystack 原字符串
needle 要查找的字符串
返回:位置
strrpos(string $haystack,string $needle)
功能:在haystack查找needle最后一次出现的位置
参数:
haystack 原字符串
needle 要查找的字符串
返回:位置
substr(string $str,int $start[,int length])
功能:字符串的截取
参数:
str 原字符串
start 截取的开始
length 截取的长度,默认截取到字符串尾
返回:截取后的字符串
preg_match_all(string $pattern,string $subject,array $match)
功能:正则匹配
参数:
pattern 正则
subject 要进行匹配的字符串
match 匹配的结果
返回:匹配到的次数
preg_match(string $pattern,string $subject,array $match)
功能:正则匹配
参数:
pattern 正则
subject 要进行匹配的字符串
match 匹配的结果,仅返回第一次匹配到的结果
返回:匹配到的次数。(0~1)
preg_grep(string $pattern,array $input)
功能:正则匹配
参数:
pattern 正则
input 要进行匹配的字符串数组。
返回:匹配的结果,返回格式:数组
分割
explode(string $delimiter,string $str[,int $limit])
功能:分割
参数:
delimiter 分割的标识字符串
str 要进行分割的字符串
limit 分割的次数
返回:分割好的字符串。格式:数组
preg_split(string $pattern,string $subject)
功能:字符串的分割
参数:
pattern 正则
subject 要进行分割的字符串
返回:被分割好的字符串
替换
str_replace(mixed $search,mixed $replace,mixed $str)
功能:在str字符串中查找search替换成replace
参数:
search 要查找的字符串
replace 要替换的字符串
str 原字符串
返回:替换后的字符串
preg_replace(string $pattern,string $replace,string $subject)
功能:正则替换
参数:
pattern 正则表达式
replace 要进行替换的字符串
subject 原字符串
返回:替换后的字符串
关注博客,更多精彩分享,敬请期待!
Tags: 面试题
很赞哦! (0)
上一篇:单例模式
下一篇:视图、索引、存储过程优缺点
相关文章
随机图文
-
css动画
> 在CSS动画中,如果你想让元素的 border-radius 从50%逐渐变为0%,你可以使用 @keyframes 规则来定义这一变化过程。以下是一个简单的示例: ```css /* 定义一个动画 */ @keyframes borderRadiusChange { 0% { border-radius: 50%; } 100% { border-radius: 0; } } /* 将动画应用到某个元素上 */ .someElement -
bat锁屏和熄屏 windows
bat锁屏和熄屏 windows -
PHP中判断字符串是否含有中文
## 判断全是中文 > 方法一 ``` $str = '吾爱编程'; if (preg_match_all("/^([\x81-\xfe][\x40-\xfe])+$/", $str, $match)) { echo '全部是中文'; } else { echo '不全是中文'; } ``` > 方法二 ``` $str="'吾爱it编程"; if(!eregi("[^\x80-\xff]","$str")){ echo "全是中文"; -
PHP日历
PHP日历小案例