gpt4 book ai didi

java - 使用 Regex 从 .java 文件中获取字符串

转载 作者:行者123 更新时间:2023-11-29 03:23:31 25 4
gpt4 key购买 nike

我正在制作一个正则表达式模式,我可以在其中提取以“””开头并以“””结尾的字符串。但这就是问题所在 - 字符串可能还包含带有转义字符的“”,例如“\”。就像这个 “This is a\"Demo\"text"。现在我对 lookbehind 运算符知之甚少。如果单个正则表达式模式可行,我只需要一些建议?

谢谢

最佳答案

它应该像这样工作:

"(?:\\.|[^"])+"

没有前瞻/后视的东西。这会执行以下操作:

  1. 寻找",消费它
  2. 检查接下来的 2 个字符是否是反斜杠后跟任何字符(这将匹配两个反斜杠 \\,其中第一个掩蔽第二个,\"以及)。如果找不到,转到步骤 3。如果找到,消耗这 2 个字符并重复步骤 2。
  3. 检查下一个字符是否不是"。如果是,则消费并转到步骤2。如果不是(它是"),转到步骤4
  4. 消费必须在这里的"

正如 HamZa 所指出的,如果在字符串外部发现 " 而不是字符串的开头,则此正则表达式将失败。例如,对于 Java 代码,如果您有像

Character c = '\"'

(“作为一个字符)或

if (foo) { /* chosen "sometimes */ String g = "bar"; }

(评论内随机“)

关于java - 使用 Regex 从 .java 文件中获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22319339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com