4

\b度も使ったことがないものがあるので、なくてはならないユースケースを誰かに教えてもらえないかと思っていました\b

4

3 に答える 3

6

\ bなしではできない場合に、誰かが私にユースケースを教えてくれるかどうか疑問に思いました。

この式\bは、他の構成ですでに実行できることの便利な省略形です。

たとえば、正規表現エンジンにルックアラウンドがある場合\b、次のより長い式と同等です。

(?<=\w)(?!\w)|(?<!\w)(?=\w)

同様\w\d、、などは、文字クラスを使用してすでに実行できることの省略形です。たとえば[A-Za-z0-9_]、または[0-9]。毎回完全な定義を書き出すのは面倒で読みにくく、エラーが発生するリスクが高くなるため、通常は短いバージョンを使用します。

于 2012-11-14T13:09:57.633 に答える
2

それらは異なるものに\s一致します-空白、\b単語の境界に一致します。

1つの良い例は文字.です。

文字列内hello.hi

\sは一致しません.が、\b前後で一致します。

于 2012-11-14T13:05:35.630 に答える
2

それらは完全に異なるものです。

\s空白文字」です。つまり、\t, \r, \nまたはスペースのような空白文字を含む事前定義された文字クラスへのショートカットです。\sそれらの文字の1つに一致します。

\b単語の境界」です。これはゼロ幅のアサーションであり、事前定義された文字クラスに関連してい\wます。ゼロ幅アサーションとは、幅が0である、つまり文字と一致しないことを意味します。アサーションを満たす位置と一致します。ここでのアサーションは、一方が単語文字で、もう一方が非単語文字になります。マークはすでに長いバージョンを提供し、\b一致する例\bをOdedしました。

\wは「単語文字」であり、のようなものが含まれていることを意味します[a-zA-Z0-9_]。一部の言語では、Unicodeに基づいており、すべての文字が含まれています。

于 2012-11-14T13:38:19.247 に答える