我有一个字符串,我想捕获其中的数字,然后添加一个!。
例如,我有一个电子邮件主题标题“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+")";
答案 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+
。这将帮助您支持多位数字。