一\b度も使ったことがないものがあるので、なくてはならないユースケースを誰かに教えてもらえないかと思っていました\b。
3 に答える
\ bなしではできない場合に、誰かが私にユースケースを教えてくれるかどうか疑問に思いました。
この式\bは、他の構成ですでに実行できることの便利な省略形です。
たとえば、正規表現エンジンにルックアラウンドがある場合\b、次のより長い式と同等です。
(?<=\w)(?!\w)|(?<!\w)(?=\w)
同様\wに\d、、などは、文字クラスを使用してすでに実行できることの省略形です。たとえば[A-Za-z0-9_]、または[0-9]。毎回完全な定義を書き出すのは面倒で読みにくく、エラーが発生するリスクが高くなるため、通常は短いバージョンを使用します。
それらは異なるものに\s一致します-空白、\b単語の境界に一致します。
1つの良い例は文字.です。
文字列内hello.hi:
\sは一致しません.が、\b前後で一致します。
それらは完全に異なるものです。
\s「空白文字」です。つまり、\t, \r, \nまたはスペースのような空白文字を含む事前定義された文字クラスへのショートカットです。\sそれらの文字の1つに一致します。
\b「単語の境界」です。これはゼロ幅のアサーションであり、事前定義された文字クラスに関連してい\wます。ゼロ幅アサーションとは、幅が0である、つまり文字と一致しないことを意味します。アサーションを満たす位置と一致します。ここでのアサーションは、一方が単語文字で、もう一方が非単語文字になります。マークはすでに長いバージョンを提供し、\b一致する例\bをOdedしました。
\wは「単語文字」であり、のようなものが含まれていることを意味します[a-zA-Z0-9_]。一部の言語では、Unicodeに基づいており、すべての文字が含まれています。