javascript - 如何替换不在引号中的字符串

标签 javascript regex string replace quotes

我正在努力应对以下情况,我有一个多行字符串,其中多次包含单词 test,该字符串是:

Hello my name is "test" im a test
test is testing

我需要替换所有不在引号中的测试字符串 每个找到的字符串后面都应该跟至少 1 个空格或换行符,而不是其他任何内容,因此上面的字符串将转换为:

Hello my name is "test" im a HELLOWORLD
HELLOWORLD is testing

测试字符串也可以在前面加上空格,但也不能没有。

我已经发现的是一种只替换不在引号内的字符串的方法:

str.replace(/(test)(?=(?:[^"]|"[^"]*")*$)/, 'HELLOWORLD')

有人能帮我找到其他规则吗?

最佳答案

(\btest\b)(?=(?:[^"]|"[^"]*")*$)

试试这个。查看演示。

https://regex101.com/r/pT4tM5/28

关于javascript - 如何替换不在引号中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29170998/

相关文章:

javascript - "display: none"div 中的图像未加载 onpageload

c# - 检查两个字符串是否共享相同的重复字符模式

java - 使用返回的字符串来调用方法?

javascript - jQuery AJAX 文件上传 PHP

javascript - 拆分 Javascript 片段

python - 使用iterator和re python提取特定信息

regex - sed 匹配模式与变量中的多行字符串

c - 查找字符串是否为大小写混合的最有效方法

Python拆分 ':'字符前的单词但不拆分时间结构

javascript - 如何在 HTML 文件中调用 TypeScript 函数?