我没有为我的问题找到正则表达式。总是有使用反斜杠转义的示例正则表达式。
但我需要通过加倍封闭字符来转义。
示例:'o''reilly'
结果:奥莱利
'(?:''|[^']*)*'
将匹配可能包含双转义引号的引号分隔字符串。这就是你找到这些字符串的正则表达式。
解释:
' # Match a single quote.
(?: # Either match... (use (?> instead of (?: if you can)
'' # a doubled quote
| # or
[^']* # anything that's not a quote
)* # any number of times.
' # Match a single quote.
现在要正确删除引号,您可以分两步完成:
一、搜索(?<!')'(?!')
查找所有单引号;用任何东西代替它们。
解释:
(?<!') # Assert that the previous character (if present) isn't a quote
' # Match a quote
(?!') # Assert that the next character (if present) isn't a quote
其次,搜索''
并全部替换为'
.