本文主要讲解关于一文详解正则表达式中的特殊符号相关内容,由优网导航(www.uonce.com)提供,欢迎关注收藏本站!
正则表达式中的特殊符号
如:
preg_match('/.+?hxx/is', hxx));
返回,0,表示没有匹配,这是因为 .+?的作用,具体讲一下。

程序员导航
优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站
.的作用
-
作用:匹配除换行符(
n)以外的任意单个字符。 -
修饰符影响:当使用
s修饰符(单行模式)时,.也能匹配换行符。
如:
preg_match('/a.b/', acb));
-
有.时:可以匹配像
aab、acb、a b这样的字符串,因为.可以匹配任意字符(除了换行符,除非使用s修饰符)。 -
无.时(例如
/ab/):只能匹配ab,不能匹配中间有其他字符的情况。
+的作用
- 作用:匹配前面的子表达式一次或多次(贪婪模式,尽可能多地匹配)。
-
组合使用:当与
?组合成+?时,表示非贪婪模式(尽可能少地匹配)。
如:
preg_match('/a+/', aaa));
-
有+时:可以匹配一个或多个连续的
a,如a、aa、aaa等。 -
无+时(例如
/a/):只能匹配单个a,不能匹配多个。
?的作用
-
作用:

AI 工具导航
优网导航旗下AI工具导航,精选全球千款优质 AI 工具集
- 单独使用时:匹配前面的子表达式零次或一次(即前面的内容是可选的)。
- 紧跟在量词(如
*、+、?、{n}等)后面时:将贪婪模式转换为非贪婪模式(最小匹配)。
情况1:单独使用
如:
preg_match('/a?b/', ab));
-
有?时:可以匹配
b(因为a出现0次)或ab(a出现1次),但不能匹配aab。 -
无?时(例如
/ab/):只能匹配ab,不能匹配b。
情况2:作为非贪婪修饰符(与量词组合)
如:
preg_match('/a+?b/', aab));
-
有?(非贪婪模式)时:在字符串
aaab中,会匹配aab(因为+?会尽可能少地匹配,只匹配一个a,然后遇到b就停止)。 -
无?(贪婪模式)时:在字符串
aaab中,会匹配整个aaab(因为+会尽可能多地匹配)。
*的作用
- 有*: 允许前面的元素出现0次或多次。即该元素可以没有,也可以重复多次。
- 无*: 前面的元素必须恰好出现一次(如果没有其他量词修饰的话)。
如:
preg_match('/ab*c/', 'ac'); // 匹配 "ac"(b出现0次)
// 匹配 "abc"
// 匹配 "abbbbc"
^的作用
作用:
- 匹配字符串的开始位置
- 在多行模式(
m修饰符)下也匹配每行的开头
如:

免费在线工具导航
优网导航旗下整合全网优质免费、免注册的在线工具导航大全
preg_match('/^abc/', 'abc'); //匹配 "abc123"
//不匹配 "123abc"
$的作用
作用
- 匹配字符串的结束位置
- 在多行模式(
m修饰符)下也匹配每行的结尾
如:
preg_match('/abc$/', 'abc'); //不匹配 "abc123"
//匹配 "123abc"
综合对比表
| 元字符 | 示例表达式 | 匹配行为 | 示例输入 | 匹配结果 |
|---|---|---|---|---|
. |
/a.b/ |
匹配任意单个字符(除换行符) | aXb |
匹配aXb
|
无.
|
/ab/ |
只能匹配字面ab
|
aXb |
不匹配 |
+ |
/a+/ |
匹配1个或多个a
|
aaa |
匹配整个aaa
|
无+
|
/a/ |
只能匹配单个a
|
aaa |
只匹配第一个a
|
?(单独) |
/a?b/ |
a出现0次或1次 |
b |
匹配b
|
无?
|
/ab/ |
只能匹配ab
|
b |
不匹配 |
+? |
/a+?b/ |
非贪婪匹配:尽可能少地匹配a
|
aaab |
匹配aab(从第二个a开始) |
+(无?) |
/a+b/ |
贪婪匹配:尽可能多地匹配a
|
aaab |
匹配整个aa
|
^ |
/^a/ | 匹配出现在开头的a
|
a | 匹配到了开头的 a
|
总结
就是最近经常遇到一些这类的 特殊符号,搞不懂什么意思,网上也没有很全面的教程,就问al,自己总结了一下。
到此这篇关于正则表达式中特殊符号的文章就介绍到这了,更多相关正则表达式特殊符号内容请搜索优网导航以前的文章或继续浏览下面的相关文章希望大家以后多多支持优网导航!
您可能感兴趣的文章:
- 正则表达式(RegExp)判断文本框中是否包含特殊符号
- 正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
- php中正则表达式中的特殊符号
相关推荐: DistributedLock 实现.Net分布式锁功能
本文主要讲解关于DistributedLock 实现.Net分布式锁功能相关内容,由优网导航(www.uonce.com)提供,欢迎关注收藏本站!在分布式系统中,经常会遇到多个实例同时访问同一份资源的情况,例如: 多个服务节点同时写入数据库同一行数据 定时任务…
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...



