Fel*_*ani 1 .net c# regex string
我有以下字符串与SQL命令:
string sql = "select [x] from table where field = [y] order by [w], [z]";
Run Code Online (Sandbox Code Playgroud)
我想获取[brackets](x,y,w,z等)中的键,我怎么能用C#做到这一点?有没有办法用正则表达式(没必要)?
我尝试用while声明做一些事情,但它不起作用.
谢谢
使用正则表达式:
@"\[(.)]"
Run Code Online (Sandbox Code Playgroud)
这将捕获[]使用Matches方法时的内部字母Regex.
由于括号内可能有单词,因此正则表达式更复杂一些.
我将假设这些将永远不会包含转义]- 所以以下内容应该有效:
@"\[([^\]]+)]"
Run Code Online (Sandbox Code Playgroud)
用法:
var matches = Regex.Matches("select [x] from table where field = [yy] order by [w], [z]", @"\[([^\]]+)]");
foreach(Match match in matches)
{
foreach(Group group in match.Groups)
{
Console.WriteLine(group.Value);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,有一个默认组match.Groups,因此您将获得重复项.