を使用してPHPで文字列を検索し、preg_match()
「xdr」の形式の文字列を返そうとしています。ここで、xは1桁の数字です。
それ以外の場合、文字列は文字、数字、「。」で構成されます。終止符とスペース。
私は正規表現で絶望的です、誰かが私を助けることができますか?
試しまし^([a-zA-Z0-9]+)\s2dr$
たが、うまくいきません
たとえば、文字列は次のようになります。A really big 2.0 was 3dr once
を使用してPHPで文字列を検索し、preg_match()
「xdr」の形式の文字列を返そうとしています。ここで、xは1桁の数字です。
それ以外の場合、文字列は文字、数字、「。」で構成されます。終止符とスペース。
私は正規表現で絶望的です、誰かが私を助けることができますか?
試しまし^([a-zA-Z0-9]+)\s2dr$
たが、うまくいきません
たとえば、文字列は次のようになります。A really big 2.0 was 3dr once
私があなたのニーズを理解している限り、この正規表現は、いくつかの数字の後にdr
:が続く文字列と一致するように機能します。
/\b\d+dr\b/
で動作中preg_match
:
preg_match('/\b\d+dr\b/', $string);
説明:
/ : regex delim
\b : word boundary
\d+ : one or more digit
dr : literaly dr
\b : word boundary
/ : regex delim
characters, numbers, '.' full stops and spaces
他のキャラクターだけを使用したい場合は、次のようにします。
preg_match('/^[\w\d. ]*\b\d+dr\b[\w\d. ]*$/', $string);
そして、Unicode互換であるために:
preg_match('/^[\pL\pN. ]*\b\pN+dr\b[\pL\pN. ]*$/', $string);
あなたは近くにいます。
次の正規表現は、1桁の数字に一致し、その後に1つ以上の英字、数字、ピリオド、スペースが続き、で終わりdr
ます。
^\d[a-zA-Z0-9. ]+dr$
注:リテラルが必要かどうかわからない場合dr
は、最後から削除してください。