我创建了这个正则表达式:
#define[\s]{1,}(?<name>[a-zA-Z0-9_$]){1,}[\s]{1,}(?<value>[a-zA-Z0-9_$\s()={},;.?:]){1,}
但是当我测试它时,这给了我这个结果:
name: E
value: 6
细绳:
#define MAX_ARENE 10123456
如何获取组中的所有字符串而不仅仅是最后一个字符?
无论如何,如果你需要这是我的 C# 代码:
Match match = Regex.Match(line, @"#define[\s]{1,}([a-zA-Z0-9_$]){1,}[\s]{1,}([a-zA-Z0-9_$\s()={},;.]){1,}", RegexOptions.Singleline);
if (match.Success)
{
MessageBox.Show(match.Groups[1].ToString() + match.Groups[2].ToString());
defines.Add(match.Groups[1].ToString(), match.Groups[2].ToString());
node.Nodes.Add(match.Groups[1].ToString());
}
PS 调试代码。
我使用这个在线工具http://regexhero.net/tester/来测试正则表达式,但同样的结果发生在 MessageBox