这是一个常见的Q& A的集合。这也是一个社区维基,所以每个人都被邀请参与维护。
regex正在遭受给我ze代码类型的问题和糟糕的答案,没有任何解释。此参考旨在提供质量Q& A的链接。
此引用适用于以下语言:php,perl,javascript,python,ruby,java,{{ 3}}
这可能过于宽泛,但这些语言共享相同的语法。对于特定功能,它背后的语言标签,例如:
答案 0 :(得分:782)
在线教程
<强>量词强>
*
:greedy,*?
:reluctant,*+
:possessive +
:greedy,+?
:reluctant,++
:possessive ?
:optional (zero-or-one) {n,m}
:between n & m,{n,}
:n-or-more,{n}
:exactly n {n}
and {n}?
字符类
[...]
:任何一个字符,[^...]
:否定/任何字符,但[^]
matches any one character including newlines javascript [\w-[\d]]
/ [a-z-[qz]]
:设置减法.net,xml-schema,xpath,JGSoft [\w&&[^\d]]
: set intersection java,ruby 1.9 + [[:alpha:]]
:POSIX字符类[^\\D2]
, [^[^0-9]2]
, [^2[^0-9]]
get different results in Java? java \d
:digit,\D
:non-digit \w
:word character,\W
:non-word character \s
:whitespace,\S
:non-whitespace \p{L}, \P{L}
, etc.) 转义序列
\h
:space-or-tab,\t
:tab \H
:Non horizontal whitespace character, \V
:Non vertical whitespace character, \N
:Non line feed character pcre php5 java-8 \v
:vertical tab,\e
:the escape character <强>锚强>
^
:start of line/input,\b
:word boundary, and \B
:non-word boundary,$
:end of line/input \A
:start of input, \Z
:end of input php,perl,ruby \z
:the very end of input(Python中的\Z
).net,php,pcre,java,ruby,{{3 }},icu,swift \G
:start of match,php,perl (另请参阅&#34;风味特定信息→Java→Matcher
&#34;中的功能)
<强>组强>
(...)
:capture group
(?i:regex)
mean? (?P<group_name>regexp)
mean?或(?>)
:atomic group,independent group
regular-expressions.info
:(?<groupname>regex)
:java和Overview (非堆叠溢出链接) (?P<groupname>regex)
,python (?<groupname>regex)
,.net (?<groupname>regex)
,(?P<groupname>regex)
和(?<groupname>regex)
perl <强> Lookarounds 强>
(?=...)
:positive (?!...)
:negative,(?<=...)
:positive((?<!...)
:negative不支持)<强>调节剂强>
g
:global,i
:case-insensitive,u
:unicode x
:whitespace-extended c
:current position perl e
:expression php perl o
:once m
:multiline php perl python javascript .net,java m
:(non)multiline < / LI>
s
:single line或javascript不支持),ruby s
workaround S
:study php U
:ungreedy php 其他强>
|
:alternation (OR) operator,.
:any character [.]
:literal dot character (*PRUNE)
,(*SKIP)
(*BSR_ANYCRLF)
和php):perl,(?R)
,(?0)
and (?1)
,(?-1)
常见任务
(?&groupname)
{...}
高级正则表达式
(?!a)a
this
except in contexts A, B and C 风味特定信息
(除了标有*
的内容外,此部分包含非Stack Overflow链接。)
java.util.regex.Matcher
):匹配必须锚定到input-start和-end matches()
):匹配可以是输入字符串中的任何位置(子字符串)find()
:匹配必须锚定到仅输入 - lookingAt()
函数:java.lang.String
,matches(s)
,replaceAll(s,s)
,replaceFirst(s,s)
,split(s)
split(s,i)
preg_match
,Regular expression operations,search
vs match
regexp
command 一般信息
(标有*
的链接是非Stack Overflow链接。)
可能导致正则表达式引擎失败的正则表达式示例
工具:测试人员和解说员
(此部分包含非Stack Overflow链接。)
在线(*包括替换测试仪,+包括分割测试仪):
freeformatter.com
xregexp PCRE和POSIX,regex.larsolavtorvik.com
离线: