2013-08-01 8 views
8

単語を一致させたいi.v.大文字小文字を区別しない単語境界を使用する正規表現ですが、単語はaで終わります。 (ピリオド)

は、パターン

(?i)\bi\.v\. 

を持っていますが、上記のパターンは、それが
IVX

と一致していることで失敗した最後
上の単語の境界をしたいですしかし、私はしようとすると、作業の境界を最後に追加する場合

(?i)\bi\.v\.\b 

i.v.にも一致しないという点で失敗します。 私は\bがリテラルを食べていると思います。 as。単語の切れ目
は私が
SAMの静脈注射を一致させたい欲張り

する\.を必要としていますサム


sam.i.v.
i.v.sam

この

(?i)\bi\.v\.\s$ 

を近づけるしかし、それは静脈注射を見つけることができませんドットはドットをエスケープする必要があり、もちろん単語文字が、考慮されませんので、あなたはドットの後\bを持っている必要はありません

:ラインあなたの現在の正規表現について

+1

あなたの問題は何ですか?あなたはなぜ式の終わりに '\ b'をしたいのですか?一致することが許可されているときに、この 'i.v.'文字列に続くものは何ですか? – Qtax

+0

@ Qtax私は単語の一致がほしいからです。最初のパターンはi.v.xと一致します。 – Paparazzi

+0

"i.v.x"に一致しますが、 "xxi.v.x"に一致しませんか? "i.v. x"(。とxの間にスペースがある)はどうですか? –

答えて

16

\bは、英数字と非英数字(または文字列の開始/終了)の間でのみ一致します。したがって、.の後に英数字がそのドットの直後に続く場合を除いて一致しません。

(?i)\bi\.v\.(?!\S) 

(?!\S)を意味し、「次の文字が非ではないことをアサート:あなたの目的は何の非空白文字がドットの後に続かないことを確認する場合には

、あなたはnegative lookahead assertion使用するように指定することができます - 空白文字 "となります。

これは少し畳み込まれたように聞こえるかもしれません - なぜ二重否定的ですか?どうして(?=\s)は、次の文字が空白文字であると主張するのでしょうか?さて、微妙な違いがあります:第2版では空白文字が必要です。正規表現が文字列の最後に一致しないことを意味します。最初の正規表現はそのコーナーケースも処理します。

あなたは、一般的に、「単語の境界」のコンセプトは「スペース区切り」を意味する場合は、あなたにも最初\bを交換する必要があります。

(?i)(?<!\S)i\.v\.(?!\S) 

または正規表現はsam.i.v.いるあなたドンと一致しますそれを望んでいるようだ。

+0

それは意味があり、それは働く – Paparazzi

+0

あなたの最近のあなたの質問への編集はちょっと混乱しました(私は私の答えを書いた後にしか読まない) - 私はあなたの質問にコメントしました。私はあなたも最初の単語の境界を置き換える必要があると思います... –

+0

私は同意します。 \ bは?i.vと一致します。 – Paparazzi

2

の終わりに

(?i)\bi\.v\. 

iの前に\bが必要です。一致していないことを確認してください。 hi

EDIT:(あなたさらに編集に基づく)

この正規表現を試してみてください:

(?i)\bi\.v\.(?=\s|$) 
+0

はsam i.v.で失敗します。 sam – Paparazzi

+0

Plsこのデモをチェックしてください:http://www.rubular.com/r/dXRpW6aaey – anubhava

+0

それは私が一致させたいサンプルとして私の質問にあります – Paparazzi

-1

あなたは非常に単語の境界と貪欲概念と混同しているようです。あなたができる最善のことは、これらのアドレスに行くことです。

  • 貪欲数量詞は何か:

http://www.regular-expressions.info/repeat.html

  • ワード境界である何:

http://www.regular-expressions.info/wordboundaries.html

これらの説明を読むとき、あなたの問題はばかげていると思います。

+0

なぜdownvote?私は答えを与えていないので? –

+0

私は自分がしなければならなかったことをしたと思うし、他の意見は気にしない。 –

+0

\を作る方法を示してください。貪欲と私はあなたに+1を与えるでしょう – Paparazzi

関連する問題