繁体   English   中英

这个正则表达式怎么了

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM