48人参与 • 2025-07-18 • 正则表达式
如:
preg_match('/.+?hxx/is', hxx));
返回,0,表示没有匹配,这是因为 .+?
的作用,具体讲一下。
\n
)以外的任意单个字符。s
修饰符(单行模式)时,.
也能匹配换行符。如:
preg_match('/a.b/', acb));
aab
、acb
、a b
这样的字符串,因为.
可以匹配任意字符(除了换行符,除非使用s
修饰符)。/ab/
):只能匹配ab
,不能匹配中间有其他字符的情况。?
组合成+?
时,表示非贪婪模式(尽可能少地匹配)。如:
preg_match('/a+/', aaa));
a
,如a
、aa
、aaa
等。/a/
):只能匹配单个a
,不能匹配多个。*
、+
、?
、{n}
等)后面时:将贪婪模式转换为非贪婪模式(最小匹配)。如:
preg_match('/a?b/', ab));
b
(因为a
出现0次)或ab
(a
出现1次),但不能匹配aab
。/ab/
):只能匹配ab
,不能匹配b
。如:
preg_match('/a+?b/', aab));
aaab
中,会匹配aab
(因为+?
会尽可能少地匹配,只匹配一个a
,然后遇到b
就停止)。aaab
中,会匹配整个aaab
(因为+
会尽可能多地匹配)。如:
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,自己总结了一下。
到此这篇关于正则表达式中特殊符号的文章就介绍到这了,更多相关正则表达式特殊符号内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论