Home > Backend Development > PHP Tutorial > PHP regular expression to match consecutive numbers or letters

PHP regular expression to match consecutive numbers or letters

高洛峰
Release: 2023-03-05 13:16:02
Original
2146 people have browsed it

正则表达式的写法规则:"/规则需要写在2个斜杠中间/"。

(. :小数点)用于匹配除换行符之外的所有字符。

(\s:反斜杠小写s)用于匹配单个空格符,包括tab键和换行符;

(\S:反斜杠大写S)用于匹配除单个空格符之外的所有字符;

(\d:反斜杠d)用于匹配从0到9的数字;也可以这样写:[0-9]

(\w:反斜杠小写w)用于匹配字母,数字或下划线字符;

(\W:反斜杠大写W)用于匹配所有与\w不匹配的字符;

元字符包括: +, *,?

元字符理解起来容易混淆,所以我在后面做了代码结果截图

“+”元字符规定其前导字符必须连续出现一次或多次 

= 比如/es+/ 
与“tesseessssseast12354haeasashaha”字符串相匹配,首先要与第一个字母e匹配,然后匹配s,s必须出现一次或多次,请看实例截图。 

“*”元字符规定其前导字符必须出现零次或连续多次 

= 比如/es*/ 
与“tesseessssseast12354haeasashaha”字符串相匹配,首先与第一个字母e匹配,后面的s出现零次或者连续出现,看实例。 

“?”元字符规定其前导对象必须连续出现零次或一次 

= 比如/es?/ 
与“tesseessssseast12354haeasashaha”字符串相匹配,首先与第一个字母e匹配,后面的s出现零次或者最多出现一次(就是最后一个字母s不重复出现)。
Copy after login

示例代码:

$str = "tesseessssseast12354haeasashaha"; 
echo "=====".$str." 
"; 
echo "/es+/:".preg_replace("/es+/","-\\0-",$str)." 
"; 
echo "/es*/:".preg_replace("/es*/","-\\0-",$str)." 
"; 
echo "/es?/:".preg_replace("/es?/","-\\0-",$str)." 
"; 
?>
Copy after login

执行结果截图:

PHP regular expression to match consecutive numbers or letters

另外如果觉得元字符“+*?”比较难理解可以用这种{ }方法代替:

比如es*我们可以写成es{0,},而es+我们可以写成es{1,},es?可以写成es{0,1},注意:当不确定次数的时候就不用写(也不用空格)。

当然我们要指定出现多少次的可以写成这样:es{3}表示s出现3次

举一反三:

比如要替换连续多个空格为一个空格,我可以这样写:preg_replace("/\s+/"," ",$str);
比如要找出字符串中的数字(整数):preg_replace("/\d+/", "(\\0)", $str);   \\0是表示符合规则的字符串值

比如要找出字符串中的带小数点的数字:preg_replace("/\d+\.\d+/", "(\\0)", $str); //这里的“\.”表示输出小数点

找出由字母组成的字符串:preg_replace("/[a-zA-Z]+/", "(\\0)", $str)

找出由(字母、数字混合)组成的字符串:preg_replace("/([a-zA-Z]|\d)+/", "(\\0)", $str)

 

正则表达式中“或”运算,使用 “ | ”

例如上面的例子:找出由(字母或数字)混合组成的字符串([a-zA-Z]|\d) 也可以这样写([a-zA-Z]|[0-9])

“^”出现在 “[ ]”内时就被视做否定运算符;[^0-9]表示除了数字之外的任何字符。

而当“^”位于“[ ]”之外,或没有“[ ]”时,则应当被视做定位符。

定位符的意思就是比如:“^The”:开头一定要有”The”字符串;类似的:“en$”:$符号表示必须是en结尾。

其实认真看一遍就会发现正则表达式还是挺简单的,除非是我写的教程真的有问题。

更多PHP regular expression to match consecutive numbers or letters相关文章请关注PHP中文网!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template