java - 正则表达式: ignore what is quoted in a string

标签 java regex

如果我有字符串 "This is > than" something 1=3 and "else = true" (不要试图理解它的含义,它只是一个示例:P)我如何替换引号中未包含的自定义模式?例如,将第一个运算符“=”(等于)替换为“<”,结果为字符串 "This is > than" something 1<3 and "else = true" 。预先感谢您。

最佳答案

您可以尝试以下正则表达式来替换所有 =它存在于 " 之外与 <符号。

=(?=(?:[^"]*"[^"]*")*[^"]*$)

替换字符串:

<

DEMO

System.out.println("\"This is > than\" something 1=3 and \"else = true\"".replaceAll("=(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", "<"));

输出:

"This is > than" something 1<3 and "else = true"

关于java - 正则表达式: ignore what is quoted in a string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25644144/

相关文章:

java - JSF2 : Using EL in navigation rules. 超时重定向?

python - 使用Python组合文件

带有正则表达式的 Java String strip

javascript - 正则表达式 - 意外的量词

r - 从 R 中的第一个、第二个和第三个括号中提取文本

java - Hibernate多参数setString生成Java

java - 固定尺寸集合

java - 将目录添加到 jar 中,用于插入外部 jar 或类

java - JLabel:异步加载 HTML 图像

php - 防止访问除一个之外的所有 php 文件,而不将文件放在单独的文件夹中