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

时间:2013-10-21 05:05:51

标签: php regex preg-match strpos

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

我知道我可以为数字做\但不知道如何指定两个或更多数字。我知道我可以为大写或小写'x'做[xX],而且我在这段时间内迷失了。

我试过这个:

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

但这不起作用。

我更喜欢用strpos来做,但两者都没问题。

编辑 - 期间是可选的;它只是增加了安全性。但是我不确定是否有可能匹配它而不知道'x'和句号之间有多少数字。

1 个答案:

答案 0 :(得分:1)

这样的事情:\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而不会匹配任何其他内容(因此我之前的示例将失败)。