考虑一下:Match regexMatch = regex.Match(lineToScan);
正则表达式是包含正则表达式模式的Regex
的对象(例如A | B | C)
那么我能找到哪个正则表达式(A或B等)找到了马赫?
答案 0 :(得分:0)
您应该使用Regex.Matches,因为这将返回集合中的所有匹配项。
foreach (Match m in Regex.Matches(value, pattern))
Console.WriteLine(m.Value);
答案 1 :(得分:0)
您可以使用组来确定正则表达式的哪个部分匹配:
var regex = new Regex("(?<a>A)|(?<b>B)|(?<c>C)");
var match = regex.Match("B");
var matchesA = match.Groups["a"].Success; // will be false
var matchesB = match.Groups["b"].Success; // will be true
var matchesC = match.Groups["c"].Success; // will be false
通过使用命名组,每个部分都有一个名称('a','b'和'c')。然后,您可以检查Groups
属性以发现哪个组(如果有)成功匹配。
答案 2 :(得分:0)
如果你使用单词,你需要2匹配:
string regex_string = "WORD_0|WORD_1|WORD_N";
Regex regex_matcher = new Regex(@"(" + regex_string + @")\b", RegexOptions.Multiline | RegexOptions.IgnoreCase);
string result = regex_matcher.Replace("This return 'word_1' in UpperCase", m => Regex.Match(regex_string, m.ToString(), RegexOptions.IgnoreCase | RegexOptions.Multiline).Value);