「search/site/*」を含む任意の文字列に一致する正規表現を PHP で記述しようとしていますが、文字列「ss_language」が含まれていない場合に限ります。
http://regexr.com?3416i これは、「search/site」を含むすべての「search/site/*」と正常に一致するため、「ss_language」を含む文字列を除外するビットが必要です。
これについて考えると、別の preg_match をネストして ss_language を探すことができるように思えますが、1 つの正規表現に対してそれを行うのが最善の方法ですか? これは1つの正規表現でも可能ですか? いくつかの例とそれらが返すものを次に示します。
- パス - 検索/サイト
- パス - 検索/サイト/猫
- パス - search/site/dog?f[0]=im_field_technology%3A20858
- パス - search/site/cat%20dog?f[0]=im_field_technology%3A20858
- 失敗 - search/site/cat%20dog?f[0]=ss_language%3Aen
- 失敗 - search/site/?f[0]=im_field_technology%3A20858&f[1]=ss_language%3Aen
- 失敗 - search/site/?f[1]=ss_language%3Aen&f[0]=im_field_technology%3A20858
- パス - search/site/?f[0]=im_field_technology%3A20858&f[1]=im_field_technology%3A20875o
- 失敗 - ノード/23/編集
助けてくれてありがとう。私はこれらにかなり慣れていません。これは失敗した試みです: http://regexr.com?3416f