【问题标题】:Regex to include quotes in match between quotes (and new lines)正则表达式在引号(和新行)之间的匹配中包含引号
【发布时间】:2017-01-18 14:46:16
【问题描述】:

我正在尝试查找用 this regex 括在单引号中的字符串:/'+(.*?)'+,?/g

问题是字符串中允许单引号,只要它们被第二个引号转义:'it''s, you''ve, I''m... and so on, ends with one more single quote '''

如果里面有任何数量的单引号,我的正则表达式就会中断,如果有的话,我的正则表达式会在匹配的开头和结尾跳过引号。

只要没有人在字符串中添加任何引号,它似乎就可以完美地工作。但不幸的是,这不是现实世界的运作方式。

如何让我的正则表达式在匹配中包含引号?

【问题讨论】:

  • 您确定粘贴到 regex101 的字符串中的引号正确吗?你应该能够正确匹配 '([^']*(?:''[^']*)*)',? - 但你的样本对我来说似乎坏了。

标签: javascript regex


【解决方案1】:

试试这个正则表达式:

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

说明:单引号后跟(两个引号或一个非引号字符)根据需要重复,然后是一个结束单引号。

https://regex101.com/r/R4sd47/1

【讨论】:

  • 这不能识别这句话中的 2 个匹配项:'''''Plan'''''Design'
  • 据我所知,该序列中只有一个匹配项:'''''Plan'''''
  • 我对那个不好。应该只有两个单引号可以转义为一个引号。在 Plan 之后,该行的引用太多了。 regex101.com/r/dblbsl/2。但是,如果您在我的示例文本上尝试,则您的正则表达式不适用于其余文本。
  • @mottosson,你能告诉我们应用正则表达式所需的确切文本吗?我们可以削减'''''计划'''''设计'吗?
  • 我已经修改了正则表达式以包含空字符串 '' 并使用您的输入文本块,它似乎可以正确解析它们。
猜你喜欢
  • 2010-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-18
相关资源
最近更新 更多