6

次の正規表現の使用に問題があります。regexr と rubular では問題なく動作しますが、node.js で実行するとエラーが発生します。私は正規表現の使用にかなり慣れていないので、何が間違っているのかわかりません。ノックオフすればうまくいく(?<= )ので、それが問題だと思います。

を使用して、「is」を先頭および末尾のスペースと一致させようとしています/(?<= )is(?= )|==/g

テスト単語の例:
http://regexr.com?33781

ノードエラー出力

 temp = temp.replace(/(?<= )is(?= )|==/g, '===');
^
SyntaxError: Invalid regular expression: /(?<= )is(?= )|==/: Invalid group
at new RegExp (unknown source)
4

2 に答える 2

15

JavaScript 正規表現は、後読みをまったくサポートしていません。

ソース:

ただし、場合によっては偽装できます。

于 2012-12-21T16:34:30.787 に答える
2

簡単に言えば、これは JavaScript の正規表現が後読みをサポートしていないためです。

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

後読みはまったくサポートされていません。先読みは完全にサポートされています。

于 2012-12-21T16:34:43.970 に答える