[英]what's wrong with this regular expression
我正在使用正则表达式进行一些实验,但我不知道为什么正则表达式不匹配。
字符串行是文件中的一行。 应该匹配的线是这个
["boxusers:settings/user[boxuser11]/name"] = "username",
boxuser的数量和值可以不同,所以我尝试找到一个正则表达式
我的代码是这样的:
string user;
string patternUser = "[\"boxusers:settings/user[boxuser\\d{2,}]/name\"] = \"";
if (Regex.Match(line,patternUser).Success)
user = Regex.Replace(Regex.Replace(line, patternUser, String.Empty), ",*", String.Empty);
所以我认为\\ d {2,0}应该是一个带有两位数字的数字,其余的都一样。 但是正则表达式不匹配。
怎么了
方括号在正则表达式中具有特殊意义。 您需要使用反斜杠将其转义。
var line = @"[""boxusers:settings/user[boxuser11]/name""] = ""username"", ";
string patternUser = @"\[""boxusers:settings/user\[boxuser\d{2,}\]/name""\] = """;
Console.WriteLine(Regex.Match(line, patternUser).Success);
如果您不想使用逐字字符串,则需要使用两个反斜杠来转义每个正则表达式元字符(第一个转义第二个字符)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.