如何在引号中提取字符串(双引号或单引号)

问题1:

例如,

      ......“ab'cd”......'ab“cd'......

它应该分别得到ab'cdab"cd 。可能有很多带引号的字符串。


问题2:

以及如何从以下字符串中提取text

...

text

 text ... text text ... text text ... text 

abc,def,xyz可以嵌套在

正则表达式:

(?:"(?[^"]*)")|(?:'(?[^']*)')

和整个片段:

 Regex regex = new Regex( @"(?:""(?[^""]*)"")|(?:'(?[^']*)')", RegexOptions.None ); 

可以在我的博客上测试(需要silverlight)

看起来这是一个二合一的问题吧?

我对1的回答是

 ((.*)['"](.*)) 

那么#2

 <(abc|xyz|def)>(.*)<\/(abc|xyz|def)> 

abc | xyz | def < - 想象一下这样

不要忘记在使用结果之前修剪空格

对于第一个问题使用:

("(?[^"]*)")|('(?[^']*)')

第二个问题:

>(?\w*\s*

.*

[\w\s]*)<

并为两者获取组命名内容

我想通了 – 使用后退参考。

 (["'])(?.+?)\1