这是一个常见问答的集合。 这也是一个社区Wiki,所以邀请大家参与维护。
regex是苦于给我ze代码类型的问题和没有解释的拙劣答案。 此参考旨在提供质量问答的链接。
这个引用指的是以下语言:php,perl,javascript,python,ruby,Java,。NET。
这可能过于宽泛,但这些语言共享相同的语法。 对于特定的特性,后面有语言标记,例如:
请参阅regex标签详细信息页面中的许多一般提示和有用链接。
联机教程
量词
*
:贪婪,*?
:勉强,*+
:占有欲+
:贪婪,+?
:勉强,++
:占有欲?
:可选(零或一){n,m}
:介于n和; m,{n,}
:n或更多,{n}
:正好n{n}
和{n}之间有什么区别?
字符类
[...]
:任意一个字符,[^...]
:否定/除[^]
匹配任意一个字符,包括换行符JavaScript[\w-[\d]]
/[a-z-[qz]]
:设置减法。NET,xml-schema,xpath,jgsoft[\w&&[^\d]]
:设置交集Java,ruby 1.9+[[:alpha:]]
:POSIX字符类[^\\d2]
,[^[^0-9]2]
,[^2[^0-9]]
在Java得到不同的结果? Java\d
:数字,\d
:非数字\w
:单词字符,\w
:非单词字符\s
:空格,\s
:非空格转义序列
\h
:space-or-tab,\t
:tab\r
,\n
:回车和换行\r
:通用换行php Java-8锚
^
:行/输入的开始,\b
:单词边界,以及\b
:非单词边界,$
:行/输入的结束\a
:输入开始,\z
:输入结束php,perl,Ruby\z
:输入的最末尾(\z
在Python中)。NET,php,pcre,Java,ruby,icu,swift,Objective-C\g
:匹配php,perl,Ruby(另见“Javamatcher
中的函数的特定风味信息”)
组
(...)
:捕获组,(?:)
:非捕获组
\g<1>123
:如何在带编号的捕获组(如\1
)后面加上编号?:Pythonregular-expressions.info
(regex)
:概述和命名规则(非堆栈溢出链接)(?Pregex)
python,(?regex)
.NET,(?regex)
perl,(?Pregex)
和(?regex)
PHP望道
(?=。。。)
:正,(?!。。。)
:负(?<;=。。。)
:正,(?<;!。。。)
:负(javascript不支持){0,n}
Java\k
php,perl(支持\k
)修饰语
G
:全局,I
:不区分大小写,U
:Unicode,X
:空格扩展c
:当前位置perle
:表达式php perlo
:Once Rubym
:多行php perl python javascript.NET Java,m
:(非)多行Rubys
:单行(javascript或ruby不支持),s
解决方案javascripts
:study phpu
:ungreedy php r其他:
:交替(OR)运算符,.
:任意字符,[.]
:文字点字符(*prune)
,(*skip)
,(*fail)
和(*f)
(*bsr_anycrlf)
常用任务
{。。。}
高级正则表达式-FU
风味特定信息
(除了用*
标记的链接外,此部分包含非堆栈溢出链接。)
java.util.regex.matcher
中函数之间的差异:
matches()
):匹配必须锚定到输入开始和结束find()
):匹配项可能在输入字符串(子字符串)中的任何位置lookingat()
:匹配必须锚定到输入-仅开始preg_match
搜索
与匹配
,操作方法regexp
命令一般信息
(用*
标记的链接是非堆栈溢出链接。)
可能导致正则表达式引擎失败的正则表达式示例
工具:测试者和解释者
(本节包含非堆栈溢出链接。)
>
联机(*包括替换检测仪,+包括拆分检测仪):
freeformatter.com
xregexpregex.larsolavtorvik.com
php PCRE和POSIX,JavaScript脱机:
null