【发布时间】:2018-01-30 19:37:38
【问题描述】:
范围
假设我们有一个字符串hello how are you dog? "d" I am "good" "g" ha good
要求
我想要一个正则表达式,它给出了 d 或 g 的出现,但当它们严格(没有其他字符)用引号括起来时却没有。
因此,在上面的字符串中,匹配的出现次数将是(包含在 {} 中)
hello how are you {d}o{g}? "d" I am "{g}oo{d}" "g" ha {g}oo{d}
编辑
我正在尝试这样的事情:
//constructing a regex
re = RegExp(`(d|g)`, 'g')
newString = ""
'hello how are you dog? "d" I am "good" "g" ha good'
.split(re).map((word, index) => {
if (word.match(re) != null) {
console.log("match")
newString += "|" //replacement character
} else {
newString += word
}
})
注意
我正在使用 Javascript。想不出一个模式。
谢谢
【问题讨论】:
-
您还需要为正则表达式添加一些代码才能在这种情况下工作。你是提取还是替换?
-
只是为了让你知道我正在替换。
-
删除或替换为其他值?请完成问题中的测试用例。
-
'lookahead' ?= 适用于这种情况。 :)
-
@user943702 它可能在 javascript 中不起作用。
标签: javascript regex regex-negation regex-group