PHP匹配连续的数字或字母的正则表达式

2016-02-19 10:17 63 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享PHP匹配连续的数字或字母的正则表达式,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - Web开发 】

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/). :小数点)用于匹配除换行符之外的所有字符。(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不重复出现)。

示例代码:
代码如下:

$str = "tesseessssseast12354haeasashaha";
echo "=====".$str."
";
echo "/es+/:".preg_replace("/es+/","--",$str)."
";
echo "/es*/:".preg_replace("/es*/","--",$str)."
";
echo "/es?/:".preg_replace("/es?/","--",$str)."
";
?

执行结果截图:

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

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

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

举一反三:

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

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

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

 

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

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

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

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

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

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

来源:http://www.tulaoshi.com/n/20160219/1594076.html

延伸阅读
标签: Web开发
代码如下: //匹配文本,这个偶尔比较好用,但是要小心字符中包含\E  $str = '[a-z]';  $str = preg_replace('/\G[a-z]\E/', '', $str);  echo $str; //打印空,全被替换掉了,相关大概就是preg_quote功能  复制内容到剪贴板代码:  //给匹配结果命名,这样在匹配结果中...
标签: Web开发
正则表达式的功能实在太强大了~以下为找到的一个关于正则表达式基本语法的介绍: 首先让我们看两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下: "^The":表示所有以"The"开始的字符串("There","The cat"等); "of despair$":表示所以以"of despair"结尾的字符串; "^abc$":表示开始和结尾都是"abc"...
标签: Web开发
一、正则表达式概述  二、正则表达式在VBScript中的应用  三、正则表达式在VavaScript中的应用  四、示例   一、正则表达式概述  如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。  请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字...
标签: Web开发
?=和?=和?:这三种各是什么意思 ,请讲解一下。 你的答案很精辟,谢谢。 给你写了一段示例,用javascript写的,你说的左右数字总个数不超过20,加上“-”即字符串总长度不超过21。如下: [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 测试后能满足你的要求。 你想问的应该是以下四个环视结构。它们不匹配任何具体的字符,只匹配一...
标签: Web开发
$str = '中华人民共和国123456789abcdefg'; echo preg_match("/^[\u4e00-\u9fa5_a-zA-Z0-9]{3,15}$",$strName); 运行一下上面这段代码,看会有什么提示信息? Warning: preg_match(): Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 3 in F:\wwwroot\php\test.php on line 2 原来,PHP正则表达...

经验教程

230

收藏

95
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部