如何匹配具有开头和结尾条件以及匹配组的字符串
How to match a string with leading and trailing conditions and a matching group
我想匹配之前或之后没有另一个引号的字符串"$USER"
。我可以对尾引号使用负向后查找,但不知道如何实现负向后查找。使用这个字符串:
'4' = "$NULL$" AND '3' = """$NULL$" AND '7' = """$NULL$"""
应该只匹配第一个"$NULL$"
。下面是我放上去的regexp:
("'$NULL'$"|"'$KEY'$")(?!")
但是它缺少向后看。
我已经看到了许多答案建议模仿负向后看与replace
功能,但我不能理解这是如何可以与负向前看和捕获。
您可以使用捕获组并在替换模式中使用反向引用:
var regex = /(^|[^"])("'$NULL'$")(?!")/g;
var str = `'4' = "'$NULL'$" AND '3' = """'$NULL'$" AND '7' = """'$NULL'$"""`;
console.log(str.replace(regex, "$1[NEW_VAL]$2[/NEW_VAL]"));
细节-
(^|[^"])
-组1(从替换模式中称为$1
)捕获字符串(^
)的开头或除"
以外的任何字符 -
("'$NULL'$")
-组2(从替换模式中称为$2
)捕获"$NULL$"
字符串 -
(?!")
-之后没有"
如果您的条件只是引号字符不在匹配组的前面或后面,为什么不直接使用插入符号呢?
[^"]("'$NULL'$")[^"]
相关文章:
- 如何使用AngularJS应用基于Json字符串响应的条件CSS类
- 如果条件推送包含/匹配字符串的值
- 在元素中搜索字符串,然后将其放入条件语句中
- 在jQuery中,可以在字符串之间添加条件逻辑吗
- 在HTML中搜索字符串并返回True的Javascript条件
- 正则表达式.在满足条件之前,避免匹配字符串
- 用于测试字符串是否具有数字字符的条件
- Javascript 正则表达式条件语句,当在字符串中检测到两个相同字符时
- 仅在特定条件下将字符串替换为 Javascript
- 从带有条件的数组中删除字符串
- 有条件地将查询字符串追加到角度 href
- 使用 javascript 正则表达式解析以 “$” 开头的字符串和其他条件
- 在 JavaScript 中,如何根据字符串中的条件拆分字符串
- 根据一系列字符串条件删除行
- 替换URL'中的字符串查询;s与Javascript(有条件)
- 如何在IF语句中的字符串中使用条件
- javascript正则表达式匹配字符串条件,包括特殊字符
- 如何使用javascript检查子字符串条件
- 为什么这个表达式在条件中返回实际的字符串文字
- 测试字符串条件