我正在解析ESPNcricinfo的评论,我想解析一下这些语句。
示例1:Yuvraj Singh对Nasir Jamshed
示例2:Kumar到Shoaib Malik
我为保龄球和击球手的名字写了相同的正则表达式,
正则表达式:[A-Za-z[-]*]*\s[A-Za-z[-]*]*\s
Example1轻松解析但我在example2中面临问题,如
“Kumar to”视为保龄球名...
我需要帮助来摆脱保龄球名称中的“to”字样。
答案 0 :(得分:0)
您可以尝试以下正则表达式
(?<=to |^).*?(?= to|$)
即使Yuvraj Singh to Nasir Jamshed to Kumar to Shoaib Malik
字符串也是如此。
实施例
string[] names = Regex.Matches("Yuvraj Singh to Nasir Jamshed to Kumar to Shoaib Malik", "(?<=to |^).*?(?= to|$)")
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
另一种选择,因为你肯定知道名字的每一部分都以大写字母开头,然后强制规则(to
将不会匹配它,但尾随空格会):
([A-Z][\w-]*\s*)+