繁体   English   中英

如何在正则表达式中使用“ OR”?

[英]How to use 'OR' in regular expressions?

我想有一个接受这些形式的正则表达式:

23456KW33C3

23456KW33

23456千

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))

他们怎么了 ?

您的表达式工作正常,您可能只想删除开始和结束字符,它也将通过23456KW33C3

2\d{4}k?(m|(w33)(c3)?)?

该链接可帮助您根据需要修改/更新表达式。

在此处输入图片说明

我不太确定您想搭配什么。 您可能想要简化您的表达并减少它的限制。


如果您希望使用OR编写表达式,则此表达式说明了您可能希望这样做:

2\d{4}(k|)|(m|w33)|(c3)

您可以将它们添加到您拥有的捕获组之间,以从左向右滑动所需的输出。 然后,如果需要,之后可以添加更多边界。

在此处输入图片说明

RegEx电路

链接可帮助您可视化表达式:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM