Regex 正则表达式匹配单引号、双引号和三引号之间的文本

Regex 正则表达式匹配单引号、双引号和三引号之间的文本,regex,Regex,我有一个文本文件,我想从中解析字符串。问题是,在完全相同的文件中,有单个(”)、双(“)或3个单(”)引号中包含的字符串。到目前为止,我能得到的最好结果是使用以下方法: ((?<=["])(.*?)(?=["]))|((?<=['])(.*?)(?=['])) ((?使用此选项: ((?:'|"){1,3})([^'"]+)\1 使用组参考\1,您可以简化工作 此外,要仅获取引号内的内容,请使用第二组匹配项此正则表达式:({3}|[“]{1})([^'][\s\s]+?)\1

我有一个文本文件,我想从中解析字符串。问题是,在完全相同的文件中,有单个(
)、双(
)或3个单(
)引号中包含的字符串。到目前为止,我能得到的最好结果是使用以下方法:

((?<=["])(.*?)(?=["]))|((?<=['])(.*?)(?=[']))
((?使用此选项:

((?:'|"){1,3})([^'"]+)\1

使用组参考
\1
,您可以简化工作

此外,要仅获取引号内的内容,请使用第二组匹配项此正则表达式:
({3}|[“]{1})([^'][\s\s]+?)\1

做你想做的事

一些结果:


使用记事本++,您可以使用:
(''''.''.'')((?:(?!\1)。+)\1

说明:

('''|'|")           : group 1, all types of quote 
(                   : group 2
    (?:(?!\1).)+    : any thing that is not the quote in group 1
)                   : end group 2
\1                  : back reference to group 1 (i.e. same quote as the beginning)
下面是结果的屏幕截图。
这里有些东西可能对你有用

^(\"([^\"\n\\]|\\[abfnrtv?\"'\\0-7]|\\x[0-9a-fA-F])*\"|'([^'\n\\]|\\[abfnrtv?\"'\\0-7]|\\x[0-9a-fA-F])*'|\"\"\"((?!\"\"\")[^\\]|\\[abfnrtv?\"'\\0-7]|\\x[0-9a-fA-F])*\"\"\")$

将三重双引号替换为三重单引号。请参见。

您可以共享一个示例字符串吗?对不起,您的问题是什么?您基本上需要在正则表达式中添加
'
大小写吗?请注意,使用不情愿的量词(
*?
)效率不高,请改用否定字符集。请参阅或以获取解释。我们不能等待OP的示例吗?如何区分哪些是有效的,哪些是无效的?没有示例字符串,没有语言或应用程序/工具标记(因为模式语法依赖于它们),评论中没有问题的答案=关闭问题,因为问题太宽泛。即使您努力构建一个模式并试图解释您的问题。这是匹配的
“blah”
“bla”
“blah”
这不匹配
“'blah'blah'”
谢谢你把它指向你是对的!但正如UnderrableLightness评论的那样,我会在做出任何更改之前等待OP,这在很大程度上是有效的。然而,它也匹配引号,而理想情况下我只需要它们之间的字符串。也许这就是纯文本的限制(无需编程)达到正则表达式。对于更复杂的替换,我喜欢使用:我在上面的正则表达式中发现了一个问题。它找不到
“blah”
^(\"([^\"\n\\]|\\[abfnrtv?\"'\\0-7]|\\x[0-9a-fA-F])*\"|'([^'\n\\]|\\[abfnrtv?\"'\\0-7]|\\x[0-9a-fA-F])*'|\"\"\"((?!\"\"\")[^\\]|\\[abfnrtv?\"'\\0-7]|\\x[0-9a-fA-F])*\"\"\")$