使用正则表达式从文本中提取完整的单词

时间:2009-11-18 06:28:53

标签: regex

我一直在处理解析数据,我得到了一个字符串:

"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)");

4 个答案:

答案 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;下次更具体。

另外,请自助,使用RegexBuddyExpresso等工具。

答案 3 :(得分:0)

鉴于您只提供了一个应用正则表达式的字符串,很难判断此解决方案是否适用于您的其他各种情况:

/^(\w*) (.*) \(/