Jac*_*kWM 2 regex pattern-matching
我从RegexLib找到了以下正则表达式.
^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[13-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:
(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468]
[048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))
(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
Run Code Online (Sandbox Code Playgroud)
它来自http://regexlib.com/REDetails.aspx?regexp_id=113
我不明白在这个正则表达式中多次使用的符号"?:".似乎":"不在图表中
我熟悉正则表达式.任何人都可以用正则表达式和输入显示一个例子吗?
(?:...)只是一个非捕获组,表示该组匹配的字符串部分未存储且无法通过$1或访问\1
捕获组由开括号编号,因此
对于示例文本"Foobar test"
这是两个捕获组
^(\w+)\s*(\w+)
1 2
Run Code Online (Sandbox Code Playgroud)
这将导致:
$1 = "Foobar"
$2 = "test"
Run Code Online (Sandbox Code Playgroud)这里只有一个捕获组:
^(?:\w+)\s*(\w+)
1
Run Code Online (Sandbox Code Playgroud)
这将导致:
$1 = "test"
Run Code Online (Sandbox Code Playgroud)