我有一个要求,当运算符在引号中时,我希望将其作为普通术语。
例如:
输入字符串"acquired GE Plastics" GE Mortors
(Acquired GE Plastics) GE Mortors
正则表达式应与术语GE
匹配,该术语未用引号/方括号括起来。我将替换此值,以便将其单独括在引号中。因此,我得到的字符串将看起来像结果:
"acquired GE Plastics" "GE" Mortors
(Acquired GE Plastics) "GE" Mortors
我用来得到上面结果的代码片段是
str.replace({working-regex}, '"GE"');
我有两个正则表达式,它分部分解决了这个问题。首先是匹配所有GE术语bGEb
的正则表达式,其次是匹配用引号括起来的GE术语".*?(bGEb).*?"
的正则表达式。但是我已经找到了一种添加not运算符的方法,可以从我的第二个正则表达式中排除匹配结果。
const message = `"acquired GE Plastics" GE Mortors`;
const capFirst = str => str.slice(0, 1).toUpperCase() + str.slice(1);
console.log(
message.replace(/"(.+)"(.+)/g, (str, ...args) => {
const [a, b, c] = args[0].split(" ");
return `(${capFirst(a)} ${b.toUpperCase()} ${capFirst(c)})${args[1]}`;
})
);
.as-console-row {color: blue!important}