Regex for matching quotes and single quotes
我目前正在为ColdFusion代码编写解析器。我正在使用regex(在c)提取cfquery标记的name datasource属性。
目前,正则表达式如下
它适用于像
但是当分析字符串时,它会变得疯狂
显然是正则表达式的一部分(?原因是'')。当第一个匹配是单引号时,是否有方法只匹配单引号?只有在第一场比赛是双引号的时候才匹配双引号?
事先谢谢!
编辑:我认为这应该适用于C你只需要做一个反向引用:
1 | datasource\s*=\s*('|")(.*)(?:\1) |
或者也许
1 | datasource\s*=\s*('|")(.*)(?:$1) |
匹配
当然,您不能忽略带有
如果可能的话,我建议使用两个不同的正则表达式,或者以不同的方式拆分正则表达式。
对于一个正则表达式,考虑到@mike post的问题,
另一种可能的方法是使用lookahead/lookbehind,但这往往会变得混乱,而且不受普遍支持。
试试看这篇文章:
How can I match a quote-delimited string with a regex?
他们似乎在处理同一个问题。