Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
短い正規表現の例を次に示します。
preg_match_all('~(\s+|/)(\d{2})?\s*–\s*(\d{2})?$~u', 'i love regex 00– / 03–08', $matches); print_r($matches);
正規表現は「03–08」のみに一致しますが、私の意図は「00–」にも一致していました。何が問題ですか?誰でも説明できますか?
最後の部分:
-\s*(\d{2})?$~u
一致と文字列の末尾の間には、スペースおよび/またはオプションで 2 桁の数字のみを含めることができることを意味します。これは00-、それと文字列の末尾の間に他のものがあるため、一致できないことを意味します。
00-
を削除すると$、意図したとおりに動作するはずです。
$