PHP正则表达式的使用及常用函数
PHP正则表达式是一种可以匹配文本中某一部分的工具,这种工具在文本处理中非常常见。在PHP中,正则表达式可以使用其内置函数进行匹配、替换和修改。
在PHP中,使用正则表达式的函数主要有preg_match(),preg_replace(),preg_split()等。下面分别来介绍它们的使用。
1. preg_match()
preg_match函数可以对指定的字符串进行正则表达式匹配,如果匹配成功,返回1,否则返回0或false。
它的基本语法如下:
preg_match(pattern,string,matches);
其中,pattern是正则表达式;string是要匹配的字符串;matches是一个数组,当匹配成功时,该数组将存储匹配到的字符。
示例:
<?PHP
$str = "Hello world!";
$pattern = "/world/i"; //i为不区分大小写
if (preg_match($pattern, $str, $matches)) {
echo "匹配成功!";
print_r($matches);
} else {
echo "没有匹配成功!";
}
?>
输出结果:
匹配成功!
Array
(
[0] => world
)
2. preg_replace()
preg_replace函数可以对指定的字符串进行正则表达式替换,如果匹配成功,返回替换后的字符串,否则返回原字符串。
它的基本语法如下:
preg_replace(pattern,replacement,string);
其中,pattern是正则表达式;replacement是用于替换的字符串;string是要进行替换的字符串。
示例:
<?PHP
$str = "Hello world!";
$pattern = "/world/i"; //i为不区分大小写
$replacement = "you";
echo preg_replace($pattern, $replacement, $str);
?>
输出结果:
Hello you!
3. preg_split()
preg_split函数可以对指定的字符串进行正则表达式分割。
它的基本语法如下:
preg_split(pattern,string);
其中,pattern是正则表达式;string是要进行分割的字符串。
示例:
<?PHP
$str = "one,two,three,four";
$pattern = "/,/"; //以逗号分割字符串
print_r(preg_split($pattern, $str));
?>
输出结果:
Array
(
[0] => one
[1] => two
[2] => three
[3] => four
)
以上是PHP中常用的正则表达式函数,下面将介绍一些正则表达式的语法。
1. 字符类
在正则表达式中,可以使用字符类来表示一组字符的范围。字符类的语法为[]。
例如:
[abc] 表示 a、b、c 任一字符
[0-9] 表示任意数字
[a-z] 表示任意小写字母
还可以使用^来表示取反,即表示不包含某个字符。例如:
[^abc] 表示除 a、b、c 之外的任一字符
2. 重复次数
在正则表达式中,可以使用重复次数来控制某个模式出现的次数。重复次数的语法为{}。
例如:
a{3} 表示a出现3次
a{3,} 表示a至少出现3次
a{3,5} 表示a出现3到5次
还可以使用*表示任意次数(0次或多次),+表示至少出现一次,?表示出现0次或1次。
例如:
a* 表示0个或多个a
a+ 表示至少一个a
a? 表示0个或1个a
3. 其他元字符
在正则表达式中,还有许多特殊的元字符,比如:
. 表示任意字符
^ 表示字符串开头
$ 表示字符串结尾
\b 表示单词边界
\d 表示数字
\w 表示任意单词字符
\s 表示空白字符
例如:
\d* 表示匹配任意数字
\w+ 表示匹配至少一个单词字符
总结
PHP正则表达式是一种强大的文本匹配工具,可以大大简化文本处理的工作。在使用过程中,需要熟悉常用的函数和基本的语法,并且需要保持多加练习,才能更加娴熟地使用正则表达式。
