2012-09-12 72 views
1

我需要匹配引号中的字符串,但要确保第一个引号不会被转义。正则表达式 - 匹配字符串之前的引号(“)之间的字符串,但不匹配(”)

例如:首先“string \”是“Hello \”World \“!”
只应匹配你好\“世界\”!

我想修改(")(?:(?=(\\?))\2.)*?"

我尝试添加[^\\"]("),而且还挺作品,但它匹配要么只(“)或者其他字母,是不是(\”)和我可以“T想出一个办法来修改([\\"]")只匹配(‘)如果不是(\’)

这是我迄今为止([^\\"]")(?:(?=(\\?))\2.)*?"

我一直在尝试使用这些弄明白两页,但仍然无法得到它。
Can Regex be used for this particular string manipulation?
RegEx: Grabbing values between quotation marks

感谢

回答

2

可以后面用否定这个样子的:

(?<!\\)"(.*?)(?<!\\)" 

检查看到它在行动here on regex101

第一场比赛组包含:

Hello \"World\"! 
+0

但是,如果您有多个_inline_字符串,该表达式将不起作用。 – Michael

+0

谢谢!这应该让我在正确的道路 – jao

+0

@ jao如果更新它,以便处理所有实例http://regex101.com/r/vB2yI6 – Michael

相关问题