0
我有一个由撇号或双引号括起来的字符串。在字符串内,可能会出现另一个('非封闭')字符。我想使用正则表达式提取字符串的内容。涉及嵌套分隔符/正则表达式的正则表达式
例子:string = "isn't";
,我想提取isn't
。
使用/[\'"]([^\'"]*)[\'"]/
不起作用,因为它没有规定该字符串是打开和关闭相同的字符的限制。
使用/([\'"])([^\'"]*)(?1)/
修复了,但是从字符串内发生不允许的“其他”的字符。我需要像/([\'"])(!(?1)*)(?1)/
之类的东西,但我该怎么写呢?
作为奖励,可我避免捕捉的开放性,使?1
包含字符串的内容?
由于所捕获的字符结束内的字符!我想我需要在PHP中将'\ 1'结尾改为'(?1)'。第二个看起来最有希望,因为我在引号内部有一些额外的匹配(与问题无关),所以我不想复制所有的撇号和双引号。我会测试一下。 – tetech 2014-09-21 09:22:20