サーチ…


構文

  • POSIXスタイル、単語の終わり: [[:>:]]
  • POSIXスタイル、単語の始まり: [[:<:]]
  • POSIXスタイル、単語境界: [[:<:][:>:]]
  • SVR4 / GNU、単語の終わり: \>
  • SVR4 / GNU、単語の先頭: \<
  • Perl / GNU、単語境界: \b
  • Tcl、単語の終わり: \M
  • Tcl、単語の開始: \m
  • Tcl、単語境界: \y
  • ポータブルERE、単語の開始: (^|[^[:alnum:]_])
  • ポータブルERE、単語の末尾: ([^[:alnum:]_]|$)

備考

その他のリソース

完全な単語に一致

\bfoo\b

英数字なしで完全な単語にマッチします_それによって、前後の。

regularexpression.infoから撮影する

単語境界として機能する3つの異なるポジションがあります。

  1. 文字列の最初の文字の前に、最初の文字が単語文字の場合。
  2. 最後の文字が単語文字の場合は、文字列の最後の文字の後に指定します。
  3. 文字列内の2つの文字の間に、1つは単語文字であり、もう1つは単語文字ではありません。

ここでの単語文字という用語は、以下のいずれかを意味します

  1. アルファベット( [a-zA-Z]
  2. 番号( [0-9]
  3. アンダースコア_

要するに、 単語の文字 = \w = [a-zA-Z0-9_]

単語の最初または最後にパターンを見つける

次の文字列を調べます。

foobarfoo
bar
foobar
barfoo
  • 正規表現barは4つの文字列すべてに一致し、
  • \bbar\bは、第2、第3、
  • bar\bは2番目と3番目の文字列を一致させることができます。
  • \bbarは2番目と4番目の文字列と一致します。

単語の境界

\bメタ文字

単語全体を簡単に見つけるために、メタキャラクタ\b使用することができます。英数字シーケンス*の始まり 終わりを示します。また、この位置をマークする役割しか果たさないため、実際にはそれ自身のキャラクタとは一致しません。

*:英数字のシーケンスを単語として呼び出すのは一般的です。なぜなら、 \w (単語の文字class)で文字を捕捉できるからです。しかし、これには誤解を招く可能性があります。 \wには数字と、ほとんどの味ではアンダースコアも含まれているからです。

例:

正規表現入力一致しますか?
\bstack\b stackoverflow いいえ 、単語stack 全体の発生はないので
\bstack\b foo stack bar はいstack前後には何もないので
\bstack\b stack!overflow はいstack前に何もありません!単語の文字ではありません
\bstack stackoverflow はいstack前に何もないので
overflow\b stackoverflow はいoverflow後は何もないので

\Bメタキャラクター

これは\bの反対で、すべての非境界文字の位置と一致します。 \bと同様、場所にマッチするので、それ自身の文字は一致しません。これは、 単語全体を検索するために有用です。

例:

正規表現入力一致しますか?
\Bb\B abc はいbは単語の境界に囲まれていないためです。
\Ba\B abc いいえaはその左側に単語境界を持っています。
a\B abc はいa右側に単語境界がaません。
\B,\B a,,,b はい\Bは2つの単語以外の文字の間のスペースにも一致するため、2番目のカンマと一致します(最初のカンマの左側と2番目のカンマの左側に単語境界があることに注意してください)。

テキストを短くするが、最後の単語を壊さない

長いテキストをN文字以下の長さにするには、最後の単語をそのまま残すには、 .{0,N}\bパターンを使用します.{0,N}\b

^(.{0,N})\b.*


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow