2016-07-05 4 views
2

単語の使用以外に単語境界を使用するルールがあるかどうかを知りたいと思います。私の場合、特定の単語の後に値を取得したいのですが、単語を\ b 'で囲む必要がありますか?対単語境界の使用

/\bCOMP:\s*(\d{2}\/\d{4})\b/ 

/\bCOMP\b:\s*\b(\d{2}\/\d{4})\b/ 

より正しい方法は何ですか?

また、\ bはパフォーマンスに影響しますか?

ありがとうございました。

答えて

3

通常、文字列を含む単語を避けたい場合を除き、\bは必要ありません。

  • \bCOMP:それはあなたが唯一のCOMPをしたい場合SOMECOMP:に一致避けるので、便利です。 は、既にCOMPが単語境界で終了することを確実にしているので、

  • /COMP\b:は不要です。同様に、:\s*\b\d{2}は不要です。なぜなら、既に\d{2}より前の文字が単語でない文字である必要があるからです。

実際のパフォーマンスの違いは、まったく存在しない場合は非常に小さい可能性があります。しかし、不要な\bのパターンを省略すると、正規表現が簡単になり、見やすくなります。

+0

完璧な回答!ありがとう@nrabinowitz –

関連する問題