我想将以下行中的参数与正则表达式匹配:
...
# MHz S MA R 50
...
使用^#\s([a-zA-Z0-9]+)\s
,我可以匹配行和第一个参数,但不匹配其他参数。
请参阅my example here。
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以使用\S
匹配非空白字符并重复捕获必要的次数:
^#\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)
请参阅demo
这些值将进入捕获的组。
或者,您可以将所有这些内容与
匹配(?:^#|(?<!^)\G)[ ]*([^\s\n]+)(?=.*$)
请参阅another demo
答案 2 :(得分:0)
你有一个重复的空白模式,后跟你想要捕获的非空格,所以这应该可以解决这个问题:
`^#(?:\s*(\S+))+$`
样品:
var re = new Regex(@"^#(?:\s*(\S+))+$");
var matches = re.Matches("# MHz S MA R 50");
Console.WriteLine(matches);
输出: