如何使用正则表达式从下面的字符串中提取用户名值:
Acc sfjlsf56 1 0 User-Name = User_1,Group-Name = DCN_VPN_Support,
必须是User_1
Acc t3we89ab 1 0 User-Name = John,Group-Name = DCN_VPN_Support,
必须是约翰
Acc y5g769bo 1 0 User-Name =,Group-Name = DCN_VPN_Support,
必须为null
答案 0 :(得分:5)
要提取用户名,我们会查找User-Name=
令牌,然后匹配其后不是,
(表示下一个元素)的所有字符。我们使用名称"username"
标记此匹配的组,以便稍后检索它:
User-Name=(?<username>[^,]*)
var match = Regex.Match(stringToMatch, "User-Name=(?<username>[^,]*)");
string username = match.Success ? match.Groups["username"].Value : null;
请注意,这会将空用户与""
(String.Empty
)匹配,而不是null
。如果需要null
,则只需在之后进行翻译即可。
答案 1 :(得分:0)
我相信用户名= [a-z \ d] *,你可以使用