用于捕获“_”和“.”之间单词的正则表达式

Regex for capture the word between "_" and "."

我想使用正则表达式来查找 _ 和 之间的单词。在文件名中。

示例:如果文件名读取 ---- abc_resend.zip

我想 return "resend" 我的图案。

我尝试使用以下模式:"\_([a-z]*)\." 结果:_resend.

尝试了以下模式来排除:"(?:\_)([a-z]*)(?:\.) 并且仍然得到相同的结果:_resend.

我做错了什么?请帮忙。

问题是您正在寻找与此特定模式匹配的正则表达式。我不确定您使用的是哪种语言,但您想获得此结果,然后使用某种剥离方法从外部删除这两个字符。你会得到这个结果,因为你正在寻找它:下一步是因为你总是知道你会得到什么,所以使用 strip 方法删除其余部分。如果你让我知道你使用的是哪种语言,我可以帮你找到具体的语法。

. 是一个 special character in RegEx 所以如果你想匹配一个 . 字符你需要用 \ 转义它。试试这个:_([a-z]*)\.

您可以使用带有此正则表达式的模式来解决您的问题 _(\w+)\. :

String str = "abc_resend.zip";
Pattern pattern = Pattern.compile("_(\w+)\.");
Matcher matcher = pattern.matcher(str);

while (matcher.find()) {
    System.out.println(matcher.group(1));
}

输出

resend