PHP条件正则表达式
我不懂有条件正则表达式 使用preg_匹配 我试着去PHP条件正则表达式,php,regex,conditional,Php,Regex,Conditional,我不懂有条件正则表达式 使用preg_匹配 我试着去 总是4场比赛 中间有一个可选的破折号 最后有一个可选的int 示例: aaa-bbb-ccc-1 “aaa”应为匹配项[1] “bbb”应为匹配项[2] “ccc”应为匹配项[3] “1”应为匹配项[4] 但是bbb中可以有一个可选的破折号。最后一个也是可选的 Fe “aaa”应为匹配项[1] “bbb bbb”应为匹配项[2] “ccc”应为匹配项[3] “”应该是匹配项[4] 到目前为止我得到了什么: ^(\w+)-(\w+)-(\
- 总是4场比赛
- 中间有一个可选的破折号
- 最后有一个可选的int
aaa-bbb-ccc-1
“aaa”应为匹配项[1]
“bbb”应为匹配项[2]
“ccc”应为匹配项[3]
“1”应为匹配项[4]
但是bbb中可以有一个可选的破折号。最后一个也是可选的
Fe
“aaa”应为匹配项[1]
“bbb bbb”应为匹配项[2]
“ccc”应为匹配项[3]
“”应该是匹配项[4]
到目前为止我得到了什么:
^(\w+)-(\w+)-(\w+)-(\d)$
这只适用于4个组
1-3应为字母、数字、下划线
4应为数字
但是我不知道如何使用条件()
在线测试:
谢谢你的帮助
/Cotton您可以将此正则表达式与可选的最后一组和第二组中的非贪婪量词一起使用:
^(\w+)-([\w-]+?)-(\w+)(?:-(\d+))?+$
正则表达式详细信息:
:在第一组的开头匹配1个以上的单词字符,后跟^(\w+)-
-
:在第二组(惰性)中匹配1+个单词或连字符,后跟([\w-]+?)-
-
:匹配第三组中的1个以上单词字符(\w+)
:一个可选组,末尾带有连字符和数字(?:-(\d+))+$
^(\w+)-([\w-]+?)-(\w+)(?:-(\d+))?+$