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

时间:2014-03-11 07:44:56

标签: java regex

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

由于

1 个答案:

答案 0 :(得分:4)

它应该像这样工作:

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

没有前瞻/后面的东西。 这样做如下:

  1. 寻找",消费它
  2. 检查接下来的2个字符是否是反斜杠后跟任何字符(这将匹配两个反斜杠\\,其中第一个是屏蔽第二个,而\"也是如此)。如果找不到,请转到步骤3.如果找到,请使用这2个字符并重复步骤2.
  3. 检查下一个字符是否不是"。如果是,请消费并转到步骤2.如果不是(它是"),请转到步骤4
  4. 消费必须在这里的"
  5. 正如HamZa指出的那样,如果在字符串之外找到"并且不打算成为字符串的开头,则此正则表达式将失败。例如。对于Java代码,如果您有类似

    的情况就是这种情况
    Character c = '\"'
    

    (“作为字符”或

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

    (随机“在评论中)