带单引号的字符串的正则表达式(通过双引号进行转义)

本文关键字:转义 字符串 单引号 正则表达式 | 更新日期: 2023-09-27 17:54:57

我没有找到解决问题的正则表达式。用反斜杠转义总是有example-regex。

但是我需要通过将包围字符加倍来转义。

的例子:"o"雷利"

结果: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

第二,搜索'',全部替换为'