匹配文本,从结果中排除匹配文本的某些部分

时间:2014-05-23 10:38:02

标签: .net regex delphi delphi-xe2

这可以从正则表达式中的结果中排除一些文本吗? 这只是一个示例,但显示了问题:

23d14aaa17d19

我需要在没有“d”的情况下获得2场比赛

2314
1719

我试试这个

\d+(?:[a-z])\d+

但它仅从Groups集合中排除,而不是从匹配的结果文本中排除 结果是

23d14
17d19

这可以用正则表达式吗?

PS。我在stackoverflow上读到“手动”但没有成功

1 个答案:

答案 0 :(得分:0)

Livius,这个正则表达式怎么样:

^(\d+)[a-z]+(\d+)[a-z]+(\d+)[a-z]+(\d+)

像这样使用它:

using System;
using System.Text.RegularExpressions;
using System.Collections.Specialized;
class Program {
static void Main()    {
string s1 = @"23d14aaa17d19";
var myRegex = new Regex(@"^(\d+)[a-z]+(\d+)[a-z]+(\d+)[a-z]+(\d+)");
Match OneMatch = myRegex.Match(s1);
if (OneMatch.Success)    {
    Console.WriteLine(OneMatch.Groups[1].Value + OneMatch.Groups[2].Value);
    Console.WriteLine(OneMatch.Groups[3].Value + OneMatch.Groups[4].Value);
    }
Console.WriteLine("\nPress Any Key to Exit.");
Console.ReadKey();
} // END Main
} // END Program

<强>输出:

2314
1719