正则表达式用于匹配两个或多个数字,然后是一个“x”,然后是两个或多个数字


regex for matching two or more numbers, then one 'x', then two or more numbers

我在构建这个正则表达式时遇到了问题。我需要一个与以下模式匹配的 strpos 或 preg_match:00x00. 其中 '0 是任何数字,x 是大写或小写,然后是一个句点。

我知道我可以对数字做''d,但不知道如何指定两个或多个数字。我知道我可以为大写或小写的"x"做 [xX],而且我对句号迷失了方向。

我试过这个:

preg_match ( '/''d[xX]''d'./', $string )

但这行不通。

我更喜欢使用 strpos 来做,但两者都很好。

编辑 - 句点是可选的;它只是增加了安全性。但我不确定是否可以匹配它,不知道"x"和句点之间有多少个数字。

像这样:'d{2,}[Xx]'d{2,}'.将匹配两个或多个数字、一个x(忽略大小写)以及另外两个数字和一个句点。

如果这就是您想要匹配的全部内容,我建议您添加锚标签:^'d{2,}[Xx]'d{2,}'.$ .这将指示正则表达式引擎完全匹配。

简而言之,这个'd{2,}[Xx]'d{2,}'.将匹配foo bar 000X00 foo bar但这个:`^'d{2,}[Xx]'d{2,}'.$将只匹配000X00,而没有其他任何匹配(因此对于我之前的示例,它将失败)。

相关文章: