java - 需要一个正则表达式来提取两个 "delimiting"字符串之间的字符串

标签 java regex

<分区>

我需要获取 by__on 之间的字符串。
到目前为止我有这个,但不明白如何截断实际的“字符串定界符”:
by_(.*)_on

示例输入:
Files_by_wesasegeaazedude_on_January_26.jpg
当前匹配:
by_wesasegeaazedude_on
需要匹配:
wesasegeaazedude

最佳答案

你的表情很好*。您需要做的就是提取第一个捕获组的内容:

Pattern regex = Pattern.compile("by_(.*)_on");
String str = "Files_by_wesasegeaazedude_on_January_26.jpg";
Matcher m = regex.matcher(str);
if (m.find()) {
    String res = m.group(1);
}

Demo.

* 嗯,差不多好了。如果您希望在同一行输入多个文件名,您可能需要考虑使用不情愿的限定符,即 by_(.*?)_on

关于java - 需要一个正则表达式来提取两个 "delimiting"字符串之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36652669/

相关文章:

java - 什么正则表达式可以匹配相似的字符?

java - Google GCM 中是否强制使用 JSON 形式的请求?

Javascript 正则表达式不工作

Python正则表达式组匹配显示额外的空字符串

Java - 在构造函数方法调用中阻塞

java - 如何获取 Gradle 中生命周期库的版本?

java - 使用什么: executeUpdate() or execute()?

c# - c# 中的正则表达式找到字母然后\用大写字母作为字母和 Shift 按下其他字符的形式?

Java (Android) - 提取字符串中 2 个特定单词之间的部分

Python:如何在使用正则表达式时跳过有多余字符的行?