0

この正規表現の作成に問題があります。次のパターンに一致する strpos または preg_match が必要です:00x00.ここで、「0」は任意の数字で、x は大文字または小文字、次にピリオドです。

数値に対して \d を実行できることは知っていますが、2 つ以上の数値を指定する方法がわかりません。大文字または小文字の「x」に対して [xX] を実行できることはわかっていますが、ピリオドで迷っています。

私はこれを試しました:

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

しかし、それは機能していません。

strpos でやりたいのですが、どちらでも構いません。

編集 - ピリオドはオプションです。セキュリティが追加されただけです。しかし、「x」とピリオドの間にいくつの数字があるかわからないので、一致させることができるかどうかはわかりません。

4

1 に答える 1

1

そのようなもの: \d{2,}[Xx]\d{2,}\.2 つ以上の数字、x(大文字と小文字を区別しない)、さらに 2 つの数字とピリオドに一致します。

一致させたいのがそれだけの場合は、アンカー タグを追加することをお勧めします: ^\d{2,}[Xx]\d{2,}\.$. これは、正規表現エンジンに正確に一致するように指示します。

つまり、これ\d{2,}[Xx]\d{2,}\.は一致foo bar 000X00 foo barしますが、これは`^\d{2,}[Xx]\d{2,}\.$一致するだけ000X00で他には何も一致しません (したがって、前の例では失敗します)。

于 2013-10-21T05:08:02.130 に答える