2016-10-16 5 views
2

例:George R.R. Martin ジョージとマーティンだけにマッチしたい。正規表現:末尾にドットなしの単語だけを一致させたい

私は試しました:\w+\b.しかし、動作しません!

+0

どのように正規表現を試しましたか? –

+0

@WiktorStribiżew私の問題は、私は '正規表現で否定する方法を知っていません。私は終わりにドットが欲しくないと正規表現にどのように伝える?単語の終わりは '\ b'ですが、他に何がありますか? –

+0

https://regex101.com/ – gskema

答えて

2

\w+\b.は、単語の境界が続く1つ以上の単語の文字と一致し、その後、非単語の文字である任意の文字(\bは、次の.のサブパターンを制限します)と一致します。この方法は何も否定するものではなく、重要なことを逃してしまうことに注意してください。正規表現パターンのリテラルドットをエスケープする必要があります。

  • regex demo

    詳細を参照してください

    var s = "George R.R. Martin"; 
     
    console.log(s.match(/\b\w+\b(?!\.)/g));

    あなたは否定先読み(?!\.)を使用することができます\b - 先頭ワード境界

  • \w+ - 1+ワード文字
  • \b - 末尾の単語境界
  • (?!\.)は - 最後の言葉charがマッチした後に何.があってはなりません。

詳細については、how negative lookahead worksを参照してください。

+0

それは私が必要なすべてです。ありがとう、そんなに!私はその答えを数分で最高にマークします。 –

関連する問題