我有以下正则表达式,我希望第一组的匹配替代项成为第二组的匹配替代项。
(?i)^([a-z]+|\d+)-([a-z]+|\d+)$
基本上,我想要的是如果\[a-z\]
第一组中的匹配项只希望该模式与第二组\\d
匹配,并且如果第一组中的匹配项我只希望该模式在第二组中匹配。
我尝试使用一个扩展的正则表达式,该正则表达式具有[a-z]+)-([a-z]+)|(\d+)-(\d+)
但给了我4个组,1,2
或者3,4
一组填充,另一组填充null
。
1,2
所以我不必测试看看实际匹配的组。给出以下输入:
10-15
XX-ZZ
5-A
a-1000
10-15
应与
XX-ZZ
应匹配
5-A
应该不匹配
a-1000
应该不匹配
这是您的正则表达式:
/(?i)^([a-z]+|\d+)-([a-z]+|\d+)$/
请参阅以下内容:
/(?i)^(?:([a-z]+)|\d+)-(?(1)[a-z]+|\d+)$/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句