2017-01-08 7 views
3

正規表現で単語境界\bを使用する際に問題が発生しています。私はRを使用していますが、試してみると問題が存在しますhttp://regexr.com。私が使用しているパターンが\bs\.l\.\bある、と私は、このパターンに一致する唯一の2行目のマッチする行1および以下の3を期待しながら、:単語境界正規表現問題

aaa s.l. bbb 
aaa s.l.bbb 
aaa s.l., bbb 

同様http://regexr.com/3f154を参照してください。

答えて

4

word boundaries試合:文字列の最初の文字の前に

  • 、最初の文字が単語文字である場合。
  • 文字列の最後の文字の後に、最後の文字が単語文字の場合。
  • 文字列内の2つの文字の間に、1つは単語文字であり、もう1つは単語文字ではありません。今

、あなたはワード境界で先行し、そしてワード文字と続かないs.l.をマッチさせたいです。あなたは(?!\w)前後参照して末尾\bを交換する必要があります:あなたは基本R機能を使用していて、それが動作するかどうICUの正規表現ライブラリで給電stringr機能であるよう

\bs\.l\.(?!\w) 

regex demo

使用perl=TRUEを参照してください。 。

2

.は単語文字ではないため、.文字とスペースまたはカンマの間に単語境界はありません。次の位置で

+0

ありがとう、私はそれを説明しませんでした。 – user3170702

関連する問題