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

标签 java regex escaping quotes

我知道已经有很多像我这样的问题,但我没有找到适合 Java 的答案。所以我写了一个新问题。

我有如下内容的文本文件:

key1 = "This is a \"test\" text with escapes using '\\' characters";
key2 = 'It must work with \'single\' quotes and "double" quotes';

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

最佳答案

试试这个正则表达式:

'([^\\']+|\\([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}))*\""

关于用于匹配带转义引号的引号字符串的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498635/

相关文章:

java - 在没有数组的情况下对四个数字进行排序

java - 在 init 之外的 java 中创建对象

java - 如何通过 aws java SDK 调用使用 Cognito 隐式授予授权的 api 端点

javascript - 如何使正则表达式仅接受字母和空格

linux - 如何解读${x%,*}和${x#*,}的含义

java - 为什么 eclipse 不警告使用较新 java 版本中的类?

Python/Regex - 匹配.#,#。在字符串中

java - 如何防止正则表达式转换 bbcode 超链接?

php - 为什么换行符转义序列没有被转换成换行符?

html - 如何正确转义 HTML 属性中的引号?