Regex 创建接受名称但不接受单词“to”的正则表达式

Regex 创建接受名称但不接受单词“to”的正则表达式,regex,parsing,Regex,Parsing,我正在解析ESPNcricinfo的评论,我想解析以下语句 例1:Yuvraj Singh到Nasir Jamshed 例2:库马尔到肖伊布·马利克 我为投球手和击球手的名字写了相同的正则表达式 正则表达式:[A-Za-z[-]*]*\s[A-Za-z[-]*]*\s 例1解析很容易,但例2中我面临的问题是 库马尔认为是保龄球的名字… 我需要帮忙把保龄球手的名字去掉 您可以尝试以下正则表达式 (?<=to |^).*?(?= to|$) 另一个选项,因为您肯定知道名称的每一部分都以大写字

我正在解析ESPNcricinfo的评论,我想解析以下语句

例1:Yuvraj Singh到Nasir Jamshed

例2:库马尔到肖伊布·马利克

我为投球手和击球手的名字写了相同的正则表达式

正则表达式:[A-Za-z[-]*]*\s[A-Za-z[-]*]*\s

例1解析很容易,但例2中我面临的问题是

库马尔认为是保龄球的名字…


我需要帮忙把保龄球手的名字去掉

您可以尝试以下正则表达式

(?<=to |^).*?(?= to|$)
另一个选项,因为您肯定知道名称的每一部分都以大写字母开头,那么强制规则为,它将不匹配,但后面的空格将:

([A-Z][\w-]*\s*)+

两个名字都需要一个正则表达式吗?你能期望名字总是以大写字母开头吗?在ESPNCricInfo中,每个球员的名字都以大写字母开头。我想从球员的名字中排除子字符串to。第一个正则表达式工作正常。我想说的是,为什么这个正则表达式不工作。[A-Za-z[-]*]*\s[^to][A-Za-z[-]*]*\s@MuhammadAli因为[^to]的意思不是“to”,而是“t”、“o”符号。我的正则表达式中有没有可能去掉to?@MuhammadAli不,你不能说什么都匹配,但我的匹配中不包括string to。但您可以使用lookarounds,就像在我的第一个正则表达式中一样,在前面查找到或字符串的开头,在后面查找到或字符串的结尾。
([A-Z][\w-]*\s*)+