当前位置: 首页 > 面试题库 >

Java正则表达式,用于将带引号的字符串与转义的引号匹配

韩英锐
2023-03-14
问题内容

我知道已经有很多类似我的问题,但是我找不到在Java中有效的答案。所以我写了一个新问题。

我的文本文件内容如下:

key1 =“这是一个\” test \“文本,使用'\\'字符进行转义”
key2 ='它必须使用\'单'引号和“双”引号”;

我需要一个与双引号(或单引号)中的值匹配的正则表达式。此正则表达式必须支持转义的引号和转义的反斜杠。正则表达式必须与Java标准Pattern /
Matcher类一起使用。


问题答案:

试试这个正则表达式:

'([^\\']+|\\([btnfr"'\\]|[0-3]?[0-7]{1,2}|u[0-9a-fA-F]{4}))*'|"([^\\"]+|\\([btnfr"'\\]|[0-3]?[0-7]{1,2}|u[0-9a-fA-F]{4}))*"

并作为字符串文字:

"'([^\\\\']+|\\\\([btnfr\"'\\\\]|[0-3]?[0-7]{1,2}|u[0-9a-fA-F]{4}))*'|\"([^\\\\\"]+|\\\\([btnfr\"'\\\\]|[0-3]?[0-7]{1,2}|u[0-9a-fA-F]{4}))*\""


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

  • 我使用此模式在解析器中匹配单引号字符串: 但是我需要正则表达式,它可以找到带有 postgres 的单引号字符串,例如 bied of single qoutes(加倍单个 qoutes)。需要匹配这样的东西: 我想为以单引号开头和结尾的字符串找到最短的匹配项,因此上面的字符串意味着 3 个子字符串:

  • 我面临一个挑战,要以以下格式匹配输入: 输入由key=value对组成。关键字以斜杠开头。值可以是数字或引号中的字符串。 该值可以选择性地包含转义引号,即引号后面跟着引号(“”)。这种转义引号应该被视为价值的一部分。不需要检查转义引号是否平衡(例如,由另一个转义引号结束)。 正则表达式应该匹配序列中给定的key=value部分,并且对于长输入(例如value是10000个字符)不应该中断。

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

  • 我有一个非常好的正则表达式,它从文本中选择引用: 但是我需要一个正则表达式,它从没有引号的文本中选择引号。 例如,我有: 鲸鱼包括八个现存的家族:“鲸豚科”(白鲸),“鲸豚科”(露脊鲸),“鲸豚科”(侏儒露脊鲸),“白鲸科”(灰鲸),“独角鲸科”(白鲸和独角鲸),“抹香鲸科”(抹香鲸)。。。 我需要在引号之间提取文本: 龟甲翅目,龟甲翅目,龟甲翅目,... 要提取括号之间的文本,我使用正则表达式:

  • 我正在尝试编写一个regex来匹配单引号,可能会被转义。匹配的引号前面应该有偶数个反斜杠(奇数表示引号被转义)。例如,在这五个字符串中: 下面是我拥有的正则表达式: 然而,这与上面示例中的任何内容都不匹配。我觉得这很奇怪,因为从正则表达式中删除会与带有两个反斜杠的引号相匹配,这是应该的: 匹配