我努力寻找解决方案,但失败了。一个(非常长的)字符串的结尾如下:
...目的地:美国,荷兰,英国,法兰克福机场,GER
目标是:
destination:
我完成了循环,并成功地将整个字符串中的所有双字母单词读入列表:
@"\b[A-Z][A-Z]\b"
但需要更多的精确度。
任何正则表达式专家都可以提供帮助吗?
答案 0 :(得分:0)
@"destination.*?([A-Z]+)\b"
这是你的正则表达式
+
表示一次或多次
.*
表示任何字符0次或更多次。和?
之后的标志意味着懒惰的正则表达式。它将匹配字符,直到找到第一个大写字母。没有该符号字符串“destination:ABCD”.*
将匹配“:ABC”
匹配单词后,您需要的是第1组。我不知道您使用的是哪种语言
答案 1 :(得分:0)
您使用的是哪种语言?
这是C#中的一个例子:
string regex = @"destination:\s*([A-Z]{1,3})(?:(?:,\s*)([A-Z]{1,3}))*";
var m = Regex.Match("... destination: US, NL, UK, FRA, GER", regex);
if (m.Success) {
Console.WriteLine(m.Groups[1].Value);
if (m.Groups[2].Success) {
foreach (var capture in m.Groups[2].Captures) {
Console.WriteLine(capture.ToString());
}
}
}
打印:
US
NL
UK
FRA
GER