仅从正则表达式返回匹配项的一部分

说我的字符串“ 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

回到顶部