【发布时间】:2010-03-17 10:41:04
【问题描述】:
我对我的正则表达式结果有点困惑(并且仍在尝试理解语法)。我一直在使用http://regexpal.com/ 来测试我的表达式,并且它的工作方式符合预期,但是在 C# 中它并不符合预期。
这是一个测试 - 如下表达式:(?=<open>).*?(?=</open>)
在输入字符串上:
<open>Text 1 </open>Text 2 <open>Text 3 </open>Text 4 <open>Text 5 </open>
我希望返回 <open>Text1 <open>Text 2 <open>Text 3... 等的结果
但是,当我在 C# 中执行此操作时,它只返回 <open>Text1 的第一个匹配项
如何从 Regex 中获取所有五个“结果”?
Regex exx = new Regex("(?=<open>).*?(?=</open>)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
string input = "<open>Text 1</open> Text 2 <open> Text 3 </open> Text 4 <open> Text 5 </open>";
string result = Regex.Match(input, exx.ToString(), exx.Options).ToString();
【问题讨论】:
-
我只看到三个匹配项。