除了行[' xyz']之外的正则表达式匹配

时间:2014-08-05 15:00:36

标签: javascript regex

我需要帮助匹配正则表达式。

示例:"行[' DEU'] +行[' CYP'] + DE"

我希望能够在不影响行[xyz]的情况下用行[' DE']替换DE。

如果我进行全局搜索和替换,第一行会受到影响,所以我正在寻找帮助如何替换而不会影响具有行[' xyz']的字符串部分

1 个答案:

答案 0 :(得分:2)

这样的模式也许适合你:

/\b(\w+)(?![['])\b/

这将匹配任何整个单词(其中'单词'由一个或多个拉丁字母,十进制数字或下划线组成),只要它后面没有['字符,并在第1组中捕获它,因此您可以使用$1来表示替换字符串中捕获的单词。

例如:

"row['DEU'] + row['CYP'] + DE".replace(/\b(\w+)(?![['])\b/g, "row['$1']")
// "row['DEU'] + row['CYP'] + row['DE']"

或者,您可以省略捕获组并改为使用$&

"row['DEU'] + row['CYP'] + DE".replace(/\b\w+(?![['])\b/g, "row['$&']")
// "row['DEU'] + row['CYP'] + row['DE']"