我正在寻找一个正则表达式,它可以拉出字符串中的引用部分,包括单引号和双引号。
IE:
"This is 'an example', \"of an input string\""
匹配
我写了这个:
[\"|'][A-Za-z0-9\\W]+[\"|']
它有效,但是有人看到它有任何缺陷吗?
编辑:我看到的主要问题是它无法处理嵌套引号。
答案 0 :(得分:3)
它如何处理双引号内的单引号(反之亦然)?
"This is 'an example', \"of 'quotes within quotes'\""
应匹配
如果您需要支持,请使用反向引用。
(\"|')[A-Za-z0-9\\W]+?\1
编辑:修复使用不情愿的量词。
答案 1 :(得分:1)
喜欢那个?
"([\"'])(.*?)\1"
您想要的匹配将在子组2中,以及第一组中的引用类型。
你的正则表达式中的缺陷是1)贪婪的“+”和2)[A-Za-z0-9]真的不匹配很多。很多角色都不在这个范围内。
答案 2 :(得分:0)
它有效但与引号中的其他字符不匹配(例如,非字母数字,如二进制或外语字符)。怎么样:
[\"']([^\"']*)[\"']
我的C#正则表达式有点生疏,所以如果不完全正确的话,请继续关注:)
答案 3 :(得分:0)
@"(\"|')(.*?)\1"
答案 4 :(得分:0)
你可能已经拥有其中一个,但是,如果没有,这里是一个免费的开源工具,我一直用它来测试我的正则表达式。我通常对表达式应该是什么样子有一般的想法,但需要弄清楚一些细节。