当前位置: 首页 > 知识库问答 >
问题:

正则表达式:获取非转义引号之间的值

闽经纬
2023-03-14

此问题与RegEx有关:在引号之间抓取值

最佳答案中的正则表达式

(["'])(?:(?=(\\?))\2.)*?\1

Debuggex演示

还匹配以转义双引号开头的字符串。我试图将定义扩展到使用否定查找。

(["'](?<!\\))(?:(?=(\\?))\2.)*?\1

Debuggex演示

但这不会改变匹配模式中的任何内容。关于如何将转义单引号/双引号作为起始模式排除,有什么建议吗?

我想在支持regex lookback的nedit中使用它作为突出显示模式。

所需匹配的示例:

<p>
  <span style="color: #ff0000">"str1"</span> notstr
  <span style="color: #ff0000">"str2"</span>
  \"notstr <span style="color: #ff0000">"str4"</span>
</p>

共有1个答案

麹繁
2023-03-14

对前没有另一个反斜杠的反斜杠使用负查找,即。

(?<!(?<!\\)\\)["']

解决问题:

((?<!(?<!\\)\\)["'])(?:(?=(\\?))\2.)*?(?<!(?<!\\)\\)\1

演示。

您应该非常小心这种方法,因为一般来说,正则表达式不是解析标记语法中输入的好工具。您最好使用一个完整的解析器,然后可选地将正则表达式应用于从中获得的部分。

 类似资料:
  • 问题内容: 在发布此内容之前,我仔细阅读了相关问题,并且无法修改任何相关答案以使用我的方法(不擅长使用正则表达式)。 基本上,这是我现有的行: 它们都匹配和之间包含的字符串。我需要正则表达式忽略它们之间包含的转义引号。因此,之间的数据将被忽略,而之间的数据将被忽略。 任何帮助将不胜感激。 问题答案: 对于大多数字符串,您需要允许转义 任何内容 (而不仅仅是转义引号)。例如,你很可能需要允许转义字符

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?

  • 问题内容: 我试图用Java写一个正则表达式来查找单引号之间的内容。可以帮我吗?我尝试了以下操作,但在某些情况下不起作用: 测试案例: “ Tumblr”是一个了不起的应用程序 预期输出: Tumblr 测试用例: Tumblr是一个了不起的“应用程序” 预期输出: 应用程序 测试用例: Tumblr是一个“惊人的”应用程序 预期输出: 惊人的 测试用例: Tumblr很棒而且令人惊讶 预期输出:

  • 如何替换文本文件中两个引号之间的所有输入。第一个引号总是前面有一个选项卡,或者它是行中的第一个字符(csv文件)。我尝试了以下正则表达式 但是这个正则表达式只匹配两个引号之间的第一个输入,而不是全部。 例如,以下文本: 应成为 我读了下面的文章(javascript正则表达式替换括号之间的空格),非常相似,但正则表达式建议在我的情况下不可用。

  • 我正在尝试编写一个正则表达式模式,并使用split函数对所有句点进行拆分,除非这些句点位于开括号和闭括号或花括号之间。我想我是对的,因为在一个在线正则表达式测试程序中,当我运行拆分时,它正确地突出显示了我想要拆分的周期,它拆分的不仅仅是周期,还创建了一个长列表。我想我正在做一些明显的事情,但似乎无法理解。请看下面的内容。谢谢 到目前为止我所拥有的: Regex到目前为止: .(? =([^]]([

  • 问题内容: 我正在寻找一个正则表达式来匹配大括号之间的文本。 我希望将它们分别作为单独的组 。 我试过只删除第一个和最后一个大括号。 问题答案: 您需要围绕要捕获的内容使用捕获组。 只是为了匹配并捕获大括号之间的内容。 输出量 如果要三个特定的匹配组… 输出量