有人可以告诉我如何做这个正则表达式

时间:2013-11-04 14:26:05

标签: c# asp.net regex

我有一个字符串,我想捕获其中的数字,然后添加一个!。

例如,我有一个电子邮件主题标题“Re:Hello(1)”

我想捕获1,然后将其提高2,然后是3,然后是4,等等。我遇到的困难是考虑到越来越多的数字,一旦它变成10或100,这个额外的数字会杀死我现在的正则表达式。

      int replyno = int.Parse(Regex.Match(Subject, @"\([0-9]+\)").Value);
      replyno++;
      string Subject = Subject.Remove(Subject.Length - 3);
      TextBoxSubject.Text = Subject + "("+replyno+")";

3 个答案:

答案 0 :(得分:2)

Re: Hello \([0-9]+\)

这匹配字符串“Re:Hello(1)”,任意位数为数字,因此它也匹配“Re:Hello(100)”。

请注意,我专门使用[0-9]而非\d来匹配数字,因为它们不同。 \d也会匹配其他语言中的数字字符。有关详细信息,请参阅此问题和答案:https://stackoverflow.com/a/6479605/1801

如果您需要匹配其他数字字符,可以将[0-9]替换为\d

答案 1 :(得分:1)

您可以使用

\((\d+)\)

作为正则表达式。 由于(),无论数字大小如何,都会在+内捕获一个数字。

答案 2 :(得分:0)

将正则表达式更改为\d+。这将帮助您支持多位数字。