我有一个类似“[aaa] [vad] [adf]”的字符串,我想使用正则表达式来捕获[]中的数据,而[]中的字符可以是字符和数字,没有长度限制。我是正则表达的诺布,任何人都可以帮助我吗? 感谢。
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以尝试这样的事情:
var data = "[asd][dfhg][asfsa243]";
var re = new Regex(@"\[([^\]]*)\]");
var matches = re.Matches(data);
for (int i = 0; i < matches.Count; i++ )
{
var m = matches[i];
Console.WriteLine(m.Groups[1]);
}
Console.ReadLine();
输出:
asd
dfhg
asfsa243
正则表达式\[([^\]]*)\]
匹配零个或多个不是]
字符且出现在一对方括号([
和{{1}之间的字符。 })
答案 2 :(得分:0)
这是我的建议:
\[(\w+)\]
角色将在比赛的第一组中提供,如下所示:
var regex = new Regex(@"\[([\w\d]*)\]");
MatchCollection matchCollection = regex.Matches(stringToTest);
foreach (Match match in matchCollection)
{
Debug.Print(match.Groups[0].Value);
}
答案 3 :(得分:0)
以下是构建正则表达式的一些很好的资源 http://www.regexlib.com http://regexpal.com/
以下是字母数字的正则表达式:
^[a-zA-Z0-9]+$
以下是如何确保有3:
/^([a-zA-Z0-9]){3}$/
答案 4 :(得分:-1)
你可以试试 -
[^\[\]\W]+
var matches = System.Text.RegularExpressions.Regex.Matches("[aaa][vad][adf]",@"[^\[\]\W]+").Cast<Match>().Select(m => m.Value);
应该忽略任何'[',']'和非单词字符,并从示例字符串返回'aaa','vad'和'adf'。