正则表达式中否定前瞻的任何替代?

Any substitution for the negative lookahead in regular expression?

我正在使用正则表达式在 BigQuery 中提取一些国家/地区数据。而且我不知道如何从中提取我想要的文本。这是我使用的示例记录。

country
China Anhui Univ Chinese Med, Affiliated Hosp 1, Expt Ctr Clin Res, Sci Res Dept, 117 Meishan Rd, Hefei 230031, Anhui, 12, Peoples R China
Meluna Res, Geldermalsen, Netherlands; [Wiegant, Frederik Anton Clemens] Univ Utrecht, Utrecht, Netherlands

我想从文本中提取最后一个逗号后跟的单词 Peoples R ChinaNetherlands,所以我使用负前瞻来提取它们。

(, )(?!.*\b\b)((\w*\s?){3})

但 BigQuery 似乎不支持先行表达式,因为它们只支持 RE2。 有什么方法可以在不使用先行表达式的情况下提取国家/地区名称吗?

您可以使用

,\s*([^,]*)$

参见regex demo。模式匹配

  • , - 逗号
  • \s* - 零个或多个空格
  • ([^,]*) - 捕获第 1 组:逗号以外的任何零个或多个字符
  • $ - 字符串结尾。