我有以下字符串,它被错误地转义。
"\"name\":\"\"/test/name=testame\" 001\""
我想使用正则表达式来查找包含上述模式的字符串,并将其替换为正确的转义模式。目前,我正在使用硬编码来查找和替换字符串,这不是我想要的。
PS:我无法控制上面的字符串模式。我将不得不处理我的申请中的错误。
有什么建议吗?
答案 0 :(得分:2)
这会有所帮助:
\\
找到\
\"
找到“[a-zA-Z_-]+
可能足以匹配您的标签和名称[0-9]+
可能会匹配该号码而不会搞砸或发现太多:
和=
是文字,不需要转义我在这个问题中没有看到任何禁止你使用括号进行替换的内容,但你没有说明你用什么工具来替换,所以我不能给你很多提示。通常你会把
(PART 1 OF REGEXP)SOME LITERAL YOU HATE(PART 2 OF REGEXP)
作为你的匹配器和
\1SOME LITERAL YOU LIKE\2
作为替换字符串。如果您打算使用perl,那么你可以使用
s\MATCHER\SUBSTITUTER\g.
你可以使用perl one-liner做到这一点,但你必须在重新转发引号时要小心。