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

与可能转义的引号匹配的正则表达式

萧辰沛
2023-03-14

我正在尝试编写一个regex来匹配单引号,可能会被转义。匹配的引号前面应该有偶数个反斜杠(奇数表示引号被转义)。例如,在这五个字符串中:

'quotes should be matched'
\'quotes should NOT be matched\'
\\'quotes should be matched\\'
\\\'quotes should NOT be matched\\\'
\\\\'quotes should be matched\\\\'

下面是我拥有的正则表达式:

(?<=[^\\](?:\\\\)*)'

然而,这与上面示例中的任何内容都不匹配。我觉得这很奇怪,因为从正则表达式中删除*会与带有两个反斜杠的引号相匹配,这是应该的:

(?<=[^\\](?:\\\\))'匹配\\'

共有1个答案

陶泳
2023-03-14

据我所知,仅匹配'是不可能的。这是因为您不能像Wiseguy所指出的那样拥有动态长度lookbehinds。

下面的regex将匹配正确的'和它前面的任何\。不确定这是否有用。

(?<!\\)(?:\\\\)*'

匹配任意数量的双\,前面没有\且后面没有'

 类似资料:
  • 问题内容: 我想构建一个简单的正则表达式,以涵盖带引号的字符串,包括其中的所有转义引号。例如, 显然,类似 不起作用,因为它与第一个转义的引号匹配。 什么是正确的版本? 我想对于其他转义字符,答案是相同的(只需替换相应的字符)。 顺便说一句,我知道“包罗万象”的正则表达式 但我会尽量避免使用它,因为毫不奇怪,它的运行速度要比更具体的设备慢。 问题答案: 所有其他答案的问题是,它们只适合最初的明显测

  • 问题内容: 我知道已经有很多类似我的问题,但是我找不到在Java中有效的答案。所以我写了一个新问题。 我的文本文件内容如下: 我需要一个与双引号(或单引号)中的值匹配的正则表达式。此正则表达式必须支持转义的引号和转义的反斜杠。正则表达式必须与Java标准Pattern / Matcher类一起使用。 问题答案: 试试这个正则表达式: 并作为字符串文字:

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 我需要正则表达式的帮助,以匹配可能嵌入转义引号的引号字符串。 例如,给定字符串< code >“‘约翰的自行车’”。我开始使用的基本模式,,并扩展到使用lookbehind否定嵌入转义引号的大小写,但不起作用:< code > " '((? 有人知道吗? 字符串可以是一系列带引号的字符串,例如,“'约翰的自行车'、'玛丽的帽子'、'我的鞋子'”,我想分别标记每个引用的子字符串。

  • 问题内容: 匹配字符串中的’(’的正则表达式是什么? 以下是场景: 我有一串 我想使用正则表达式拆分字符串。为此,我正在使用 但是我收到以下异常。 转义似乎不起作用。 问题答案: 两种选择: 首先,你可以使用转义 回 斜线- 另外,由于它是单个字符,因此您可以将其放入不需要转义的字符类中-

  • 我正在尝试匹配以下正则表达式: 换句话说,一个单词边界后跟上面的任何字符串(可选地跟一个句点字符),后面跟一个单词边界。 我也在regex101上尝试过这一操作,但与数仍然不匹配:https://regex101.com/r/klkmwl/1 转义符并没有什么区别,我已经尝试使用十六进制转义序列来代替和符(如本问题所建议的)。为什么这不匹配?