这可能是一个简单的。无法理解它。.
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(),没有任何复杂的正则表达式模式。
假设输入中有平衡且未转义的%
字符。
您可以使用此 Javascript 正则表达式替换:
str = str.replace(/'(?!(?:(?:[^%]*%){2})*[^%]*$)/mg, "''");
正则表达式演示
如果单引号位于%
字符内,则此正则表达式将使用前瞻来匹配单引号,以确保单引号后有偶数个%
字符。