这可能是一个简单的问题。无法解决这个问题..
var str = "ADV.ACCOUNT_NAME ILIKE '%a'b%' OR ADV.ACCOUNT_NAME ILIKE '%cd%'"
现在我需要用2个单引号替换字符串部分'%a'b%'
中的单引号。我正在寻找的结果将是
"ADV.ACCOUNT_NAME ILIKE '%a''b%' OR ADV.ACCOUNT_NAME ILIKE '%cd%'"
道歉,我是正式的文盲。请帮忙
编辑:仅当单引号在%
字符
我尝试过简单的.replace(),没有任何复杂的正则表达式模式。
答案 0 :(得分:-2)
假设输入中存在平衡且未转义的%
个字符。
您可以使用此Javascript正则表达式替换:
str = str.replace(/'(?!(?:(?:[^%]*%){2})*[^%]*$)/mg, "''");
这个正则表达式将匹配单引号(如果它们在%
个字符内,方法是使用前瞻以确保单引号后有偶数%
个字符。