1

正規表現または提案されたより良い方法を使用して、正確な文字列一致が別の文字列に存在するかどうかを確認する方法を探しています。文字列の先頭または末尾にあるスペースまたはその他の単語以外の文字に一致するように正規表現に指示していることを理解しています。ただし、設定方法が正確にはわかりません。

検索文字列:t

ストリング 1:Hello World, Nice to see you! t
ストリング 2:Hello World, Nice to see you!
ストリング 3:T Hello World, Nice to see you!

検索文字列を使用して、文字列 1、文字列 2、および文字列 3 と比較し、文字列 1 と文字列 3 からのみ肯定的な一致を取得し、文字列 2 からは一致しないようにしたいと考えています。

要件:
検索文字列は件名の任意の文字位置にある可能性があります。
その前後に空白文字がある場合とない場合があります。
それが別の文字列の一部である場合、一致させたくありません。単語の一部など。

この質問のために:私はこのパターンを使用してこれを行うと思います:/\bt\b/gi

/\b{$search_string}\b/gi

これは正しく見えますか?それはより良くすることができますか?このパターンが機能しない状況はありますか?
追加情報: これは PHP 5 で使用されます

4

3 に答える 3

3

あなたの提案は/\bt\b/gi機能し、おそらく進むべき道です。\b単語の境界を正しく使用しました。両方のケースですべての一致を見つけるグローバルで大文字と小文字を区別しない修飾子を使用しています。シンプル、ストレート、クリーン。すでに思いついたもの以上のものを探す必要はありません。

于 2010-05-13T03:46:23.280 に答える
3

私にはうまく見えます。\b アサーションの正確な意味を確認して、それがまさに必要なものであることを確認することをお勧めします。

より詳細な説明がなければ、このパターンが「機能しない」状況を実際に挙げることはできませんが\b、テストケースでは問題なく機能します。

于 2010-05-13T03:46:52.017 に答える
1

古いことわざによると、人に reg 式を与えると、彼は 1 日幸せになります。正規表現の書き方を教えれば、彼は一生幸せになります (またはその趣旨の何か)、「regulator r」を試してみてください。

これは、正規表現のニーズに対応する GUI といくつかのかなり良い例を提供します。

于 2010-05-13T03:46:38.287 に答える