我想有一个接受这些形式的正则表达式:
23456KW33C3
23456KW33
23456K
23456
23456W33C3
23456W33
我写了这两个正则表达式
/(?i)^2\d{4}K?(M|(W33)(C3)?)?$/i
/(?i)^2\d{4}K?(M|(W33)|(W33C3))?$/i
他们接受所有形式,但不接受23456KW33C3
!!!
我在if表达式中使用它:
if (preg_match('/(?i)^2\d{4}K?(M|(W33)(C3)?)?$/i' ,$text))
他们怎么了?
答案 0 :(得分:0)
您的表达式工作正常,您可能只想删除开始和结束字符,它也将传递23456KW33C3
。
2\d{4}k?(m|(w33)(c3)?)?
This link可帮助您根据需要修改/更新表达式。
我不太确定您要匹配什么。您可能想要简化您的表达并减少它的限制。
如果您希望使用OR编写表达式,this expression将显示您可能希望这样做的方式:
2\d{4}(k|)|(m|w33)|(c3)
您可以将它们添加到您拥有的捕获组之间,以从左向右滑动所需的输出。然后,如果需要,之后可以添加更多边界。
此link可帮助您形象化表情: