正则表达式:在字符串中匹配双单引号

时间:2013-11-28 10:41:51

标签: regex quotes

我想要一个与例如'panic can''t happen'匹配为panic can''t happen的正则表达式。如果双引号彼此相邻,则只允许使用双引号,'panic can't' happen'可以分为两个字符串,panic canhappen

我到目前为止已经\'[^\']*[\'\']?[^\']\',但它无法按预期工作。

谢谢!

2 个答案:

答案 0 :(得分:4)

您可以尝试以下操作:

'(?:[^']+|'')+'
  • ':匹配文字'
  • [^']+:匹配一个或多个不是'的字符。
  • '':匹配加倍''
  • (?:[^']+|'')+:匹配前两种模式中的一种或多种情况。
  • '与结束'匹配。

Regex101 Demo

答案 1 :(得分:0)

使用此模式将捕获双引号或在彼此不相邻时分割:

<强>模式

'((?:''|[^']+)+)'

<强> INPUT

'恐慌不能'发生'

<强>输出

Match 1: 'panic can' 
Group 1: panic can

Match 2: ' happen'
Group 1:  happen

2个案例

<强> INPUT

“恐慌不可能发生”

<强>输出

Match 1: 'panic can''t happen' 
Group 1: panic can''t happen