【发布时间】:2014-07-28 13:37:57
【问题描述】:
我有一个输入字符串列表,如下所示: “加内容” “PlusArchieve” “加内容1” "PlusArchieve1"
等等,这意味着总是有两个条目构成一个主题{content,archieve}。现在我想在该字符串的末尾获取数字(我们称之为后缀)。为此,我使用了以下正则表达式:
Regex r = new Regex(@"Plus.+?(\d*)$", RegexOptions.IgnoreCase);
现在我循环匹配(应该最多 2 个,第一个是整个字符串,第二个是实际匹配(如果存在))。
foreach (Match m in r.Matches(tester)) Console.WriteLine(m);
其中 tester 是我列表中的当前字符串。但结果我总是得到整个字符串,而不是它的后缀。我在regexHero 上测试了相同的正则表达式,它工作...
有什么想法吗?
P.S.:这是完整的代码:
List<string> words = new List<string> { "PlusContent", "PlusArchieve", "PlusContent1", "PlusArchieve1" };
foreach(string tester in words) {
Regex r1 = new Regex(@"Plus.+?(\d*)$", RegexOptions.IgnoreCase);
foreach (Match m in r1.Matches(tester)) Console.WriteLine(m);
}
但出于某种奇怪的原因,我只从列表中获取了原始字符串。
【问题讨论】:
-
点击我在帖子中分享的链接,获取仅被括号
(...)捕获的组捕获