Regex:选择第一对下划线之间的所有内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Regex:选择第一对下划线之间的所有内容相关的知识,希望对你有一定的参考价值。

这是我的清单

record_BANGLADESH_data_1565_803.txt
record_BHUTAN_data_1565_251.txt
record_BRUNEI_data_1565_818.txt
record_CAMBODIA_data_1565_727.txt
record_CHINA PART 1_data_1565_691.txt
record_CHINA PART 2_data_1565_410.txt

我想提取第一对下划线之间的所有内容,所以我最终得到了这个:

BANGLADESH
BHUTAN
BRUNEI
CAMBODIA
CHINA PART 1
CHINA PART 2

我认为先行命令会有所帮助。

这是我到目前为止所拥有的:

(?<=_)[^A-Z]+(?=_)

但是,最终结果是:

record_BANGLADESH_803
record_BHUTAN_251
record_BRUNEI_818
record_CAMBODIA_727
record_CHINA PART 1_691
record_CHINA PART 2_410
How can I fix it?

这里是我的代码为regex101

答案

您可以使用以下命令匹配整个字符串:

^[^_]+_([^_]+)_.*$

在替换中,使用第一个捕获组$1

以上是关于Regex:选择第一对下划线之间的所有内容的主要内容,如果未能解决你的问题,请参考以下文章

匹配下划线前所有内容的正则表达式

正则表达式有条件不在最小下划线上返回false

C# Regex.Replace 匹配相同数量的字符

PHP Regex 仅允许 a-z A-Z 1-9 并用下划线替换空格

正则表达式regex

求js代码。验证输入的数据是:4-16位字符,英文、数字、下划线的组合。