我在构建这个正则表达式时遇到了麻烦。我需要一个匹配以下模式的strpos或preg_match:00x00.
其中'0是任意数字,x是大写或小写,然后是句点。
我知道我可以为数字做\但不知道如何指定两个或更多数字。我知道我可以为大写或小写'x'做[xX],而且我在这段时间内迷失了。
我试过这个:
preg_match ( '/\\d[xX]\\d\./', $string )
但这不起作用。
我更喜欢用strpos来做,但两者都没问题。
编辑 - 期间是可选的;它只是增加了安全性。但是我不确定是否有可能匹配它而不知道'x'和句号之间有多少数字。
答案 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
而不会匹配任何其他内容(因此我之前的示例将失败)。