Javascript 正则表达式 - 替换单个字符

标签 javascript regex

我只想替换所有单个等号。

var mystr = 'ONE == TWO ... THREE==FOUR ... FIVE = SIX ... SEVEN=EIGHT' ... NINE := TEN;
return mystr.replace(/(?=\=)([=]{1})(?!\=)/gm, '==');

我得到以下信息:

ONE === TWO ... THREE===FOUR ... FIVE == SIX ... SEVEN==EIGHT ... NINE :== TEN

数字 5-6、7-8 都可以。但是,我想要这样:

ONE == TWO ... THREE==FOUR ... FIVE == SIX ... SEVEN==EIGHT ... NINE := TEN

我的正则表达式有什么问题?

最佳答案

由于 Javascript 不支持后向断言,因此您无法检查之前的字符是否为相等字符。但是您可以匹配它并再次插入它。

return mystr.replace(/([^=:])=(?!=)/g, '$1==');

查看here on Regexr .

([^=:]) 是否定字符类,匹配任何字符,但 = 和 : .此字符由 $1 重新插入到替换字符串中。

当字符串中的第一个字符是单个“=”时,这是行不通的,因为字符串的开头不会与 [^=:] 匹配。

关于Javascript 正则表达式 - 替换单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17067065/

相关文章:

用于替换 dplyr 工作流程中字符串内括号内的非数字字符的正则表达式

regex - 来自/proc/cpuinfo的grep信息

javascript - Titanium iPhone Mapview 不显示来自引脚注释的标题或副标题

javascript - AWS 文档示例 : Clarification

java - 使用正则表达式返回单词位置

regex - sed 及其可选符号的正则表达式

javascript - Lo-Dash - 帮助我理解为什么 _.pick 不能按我期望的方式工作

javascript - 如何从 Google Chrome 扩展重新呈现页面?

javascript - 数组修改

python - 使用带括号的字符串需要帮助