正则表达式匹配真正单一的最后一个单引号

时间:2016-05-31 15:36:19

标签: regex

什么是正则表达式,以匹配字符串中的最后一个单引号,它真的是单一的(我的意思是它没有任何合作伙伴)所以我们应该得到最后一个引用:

foo('bar').baz("foo'foo").bar('baz').foo('bar

但以下内容无法匹配:

foo('bar').baz

1 个答案:

答案 0 :(得分:1)

我认为这是一项相当复杂的任务,特别是因为你涉及双引号。但你可能会使用这样的东西:

^('[^']*'|"[^"]*"|[^'"])*$

从字符串的开头,它匹配

  • 单引号字符串
  • 双引号字符串
  • 或字符是单引号或双引号

然后它继续“直到字符串的结尾。如果它遇到不平衡的报价,它就会失败。

我很确定在许多案例中这会失败,但最简单的案例应该有效。

Check it out at regex101

编辑:在示例中,我必须将新行 - \n - 放入否定类中以说明几个示例。