0

问题一:

例如,

     ... "ab'cd" ...'ab"cd' ...

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


问题2:

以及如何text <td>...</td> text从以下字符串中提取?

<abc>text <td>...</td> text</abc>
<xyz>text <td>...</td> text</xyz>
<def>text <td>...</td> text</def>

abc, def, xyz 可以嵌套在<td>.

4

4 回答 4

2

正则表达式:

(?:"(?<text>[^"]*)")|(?:'(?<text>[^']*)')

和整个片段:

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

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

于 2012-07-06T20:32:01.827 回答
1

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

我对 1 的回答是

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

然后对于#2

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

美国广播公司 | xyz | def <- 想象成这样

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

于 2012-07-06T20:35:53.610 回答
0

对于第一个问题使用:

("(?<content>[^"]*)")|('(?<content>[^']*)')

第二个问题:

>(?<content>\w*\s*<td>.*</td>[\w\s]*)<

并为两者获取组命名内容

于 2012-07-07T10:01:15.183 回答
0

我想通了 - 使用反向引用。

(["'])(?<q>.+?)\1
于 2012-07-12T05:01:47.193 回答