我正在制作一个正则表达式模式,我可以在其中提取以“”开头并以“”结尾的字符串。但问题出在这里 - 一个字符串也可能包含一个带有转义字符的''',就像这个'\''。就像这个"This is a \"Demo\" text"
一样。现在我对lookbehind运算符知之甚少。如果单个正则表达式模式可以实现,我只需要一些建议吗?
由于
答案 0 :(得分:4)
它应该像这样工作:
"(?:\\.|[^"])+"
没有前瞻/后面的东西。 这样做如下:
"
,消费它\\
,其中第一个是屏蔽第二个,而\"
也是如此)。如果找不到,请转到步骤3.如果找到,请使用这2个字符并重复步骤2. "
。如果是,请消费并转到步骤2.如果不是(它是"
),请转到步骤4 "
正如HamZa指出的那样,如果在字符串之外找到"
并且不打算成为字符串的开头,则此正则表达式将失败。例如。对于Java代码,如果您有类似
Character c = '\"'
(“作为字符”或
if (foo) { /* chosen "sometimes */ String g = "bar"; }
(随机“在评论中)