仅从正则表达式返回匹配项的一部分
说我的字符串“ 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
)
如果您不想麻烦地命名组,可以说
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
)
以上是 仅从正则表达式返回匹配项的一部分 的全部内容, 来源链接: utcz.com/qa/421121.html