[username]其中username是任何字符串,仅包含1到12个字符长的字母数字字符
我的代码:
Regex pat = new Regex(@"\[[a-zA-Z0-9_]{1,12}\]");
MatchCollection matches = pat.Matches(accountFileData);
foreach (Match m in matches)
{
string username = m.Value.Replace("[", "").Replace("]", "");
MessageBox.Show(username);
}
给我一个空白的比赛
答案 0 :(得分:4)
这会在括号内显示一个名称(匹配不包含方括号):
(?<=\[)[A-Za-z0-9]{1,12}(?=\])
您可以像以下一样使用它:
Regex pat = new Regex(@"(?<=\[)[A-Za-z0-9]{1,12}(?=\])");
MatchCollection matches = pat.Matches(accountFileData);
foreach (Match m in matches)
{
MessageBox.Show(m.Value);
}
答案 1 :(得分:2)
您的括号太多,您可能希望匹配字符串的开头(^
)和结尾($
)。
^[a-zA-Z0-9]{1,12}$
如果您希望匹配的字符串中有方括号,请使用反斜杠转义它们。
\[[a-zA-Z0-9]{1,12}\]
// In C#
new Regex(@"\[[a-zA-Z0-9]{1,12}\]")
答案 2 :(得分:1)
你的括号太多了。
[a-zA-Z0-9]{1, 12}
答案 3 :(得分:0)
如果您尝试匹配括号,则需要正确转义:
\[[a-zA-Z0-9]{1, 12}\]