正则表达式是什么?
正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。好了,开始写正则了。
正则表达式在匹配字符串遵从的原则:
- 最左原则:正则表达式总是从目标字符串的最左侧开始,依次匹配,直到匹配到符合表达式要求的部分,或直到匹配目标字符串的结束为止!
- 最长原则:对于匹配到的目标字符串,正则表达式总是会匹配到符合正则表达式要求的最长的部分;也就是即贪婪模式!
正则表达式写法:
- 分隔符开始,常用包括 / ; #;~
- 正则的开始,如:‘/a.*a/’
当表达式有过多的转义字符时,优先使用#,如url;
str
=
'http://baidu.com'
;
$pattern
=
'/http:\/\/.*com/'
;
//需要转义/
preg_match(
$pattern
,
$str
,
$match
);
var_dump(
$match
);
$str
=
'http://baidu.com'
;
$pattern
=
'#http://.*com#'
;//不需要转义/
preg_match(
$pattern
,
$str
,
$match
);
var_dump(
$match
);
中间的判断:
- 正则表达式是自左向右的顺序使用原子和元字符进行拼接
- 比如‘<b>zxcv</b>’,进行匹配时,‘/<b>.*<\/b>/’,其中.*代表zxcv
通用原子和元字符:
如:最后定界符会有一个字母
- ‘/as.*/i’那这个i又是什么呢,这就是模式修正符;
解释:
$str
=
'asddadsdasd'
;
$pattern
=
'/a.*d/'
;
preg_match(
$pattern
,
$str
,
$match
);
var_dump(
$match
) ;
//asddadsdasd;
$str
=
'asddadsdasd'
;
$pattern
=
'/a.*d/U'
;
//$pattern = '/a.*?d/';
preg_match(
$pattern
,
$str
,
$match
);
var_dump(
$match
) ;
//asd
php常用的正则函数:
- 匹配:preg_match()与preg_match_all()
- 1 preg_match($pattern,$subject,[array &$matches])
- 2 preg_match_all($pattern,$subject,array &$matches)
替换:preg_replace()
- mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索subject中匹配pattern的部分, 以replacement进行替换。
暂无评论内容