我一直在处理解析数据,我得到了一个字符串:
"Scottish Premier League (click here to open|close this coupon)"
我想使用正则表达式,使用 Scottish
匹配组1和 Premier League
匹配组2提取“苏格兰超级联赛”。
请告诉我使用正则表达式的方法。
MatchCollection matchCol = reg.Matches("Scottish Premier League (click here to open|close this coupon)");
答案 0 :(得分:2)
如果您只想匹配每个特定单词,那么您的正则表达式可能类似于:
(Scottish) (Premier League)
如果你想匹配第一个单词,那么接下来的两个单词:
([\w]+) ([\w]+ [\w]+)
另一种编写单词的方法是:在单词之间考虑多个空格:
(\w+)\s+(\w+\s+\w+)
答案 1 :(得分:1)
/(苏格兰)(英超联赛)/
答案 2 :(得分:1)
基本和直接:
$s = "Scottish Premier League (click ... coupon)";
$s =~ m/(Scottish) (Premier League)/;
print "Match groups one and two: '$1' '$2'\n";
你可能想要更广泛的匹配:
$s = "Generalized Matching on a string (click ... coupon)";
$s =~ m/^(\S+)\s(.+)\s+\(click/;
print "Match groups one and two: '$1' '$2'\n";
这些是Perl;下次更具体。
另外,请自助,使用RegexBuddy或Expresso等工具。
答案 3 :(得分:0)
鉴于您只提供了一个应用正则表达式的字符串,很难判断此解决方案是否适用于您的其他各种情况:
/^(\w*) (.*) \(/