正则表达式从字符串中提取国家名称

Regular Expression Extracting country name from a string

我有一堆字符串想从中提取国家名称。

http://api.com/Location_Republic_of_the_Congo_1000
http://api.com/Location_US_994

看来我需要正则表达式来提取第一个“”和最后一个“”符号之间的字符串。对于上面的例子,我想得到这个:

Republic_of_the_Congo
US

我写了这个:REGEXP_EXTRACT([Country], '(?<=_)(?s)(.*$)' ) 但它没有像我想要的那样工作。

我还想从“:RecordedCase_Armenia_558_2_1_2020_Cov_Death”中提取 'Cov_Death'。最后两个“_”符号之间的字符串。

有人能帮忙吗?

您可以使用

REGEXP_EXTRACT([Country], '_(.*)_')

regex demo

这里,

  • _ - 下划线
  • (.*) - 捕获第 1 组:除换行符以外的任何 0 个或多个字符,尽可能多(由于 * 贪婪量词)
  • _ - 下划线