说我的字符串“ User Name:firstname.surname”包含在一个较大的字符串中,如何使用正则表达式来获取firstname.surname部分?
我尝试过的每种方法都返回字符串“ User Name:firstname.surname”,然后我必须将“ User Name:”上的字符串替换为空字符串。
后面的引用可以在这里使用吗?
编辑:
较长的字符串可能包含“帐户名:firstname.surname”,因此为什么我还要匹配字符串的“用户名:”部分以获取该值。
我喜欢使用命名组:
Match m = Regex.Match("User Name:first.sur", @"User Name:(?<name>\w+\.\w+)"); if(m.Success) { string name = m.Groups["name"].Value; }
将?<something>组的开头放在括号中(例如(?<something>...)),可以使用something键作为键从匹配项中获取值(例如从m.Groups["something"].Value)
?<something>
(?<something>...)
something
m.Groups["something"].Value
如果您不想麻烦地命名组,可以说
Match m = Regex.Match("User Name:first.sur", @"User Name:(\w+\.\w+)"); if(m.Success) { string name = m.Groups[1].Value; }
并获得匹配的第一件事。(请注意,第一个带括号的组位于index 1;匹配的整个表达式位于index 0)
1
0