java - 如何使用正则表达式获取第一个匹配字符串

标签 java regex pattern-matching

我有以下代码:

public class RegexTestPatternMatcher {
  public static final String EXAMPLE_TEST = "This is my first photo.jpg string and this my second photo2.jpg String";

  public static void main(String[] args) {
    Pattern pattern = Pattern.compile("\\w+\\.jpg");
    Matcher matcher = pattern.matcher(EXAMPLE_TEST);
    // check all occurance
    while (matcher.find()) {
      System.out.println(matcher.group());
    }
  }
} 

输出是:

photo.jpg
photo2.jpg

我想选择第一个匹配项,所以只选择 photo.jpg,并跳过第二个 photo2.jpg,我试过 ma​​tcher.group(0),但没有工作,知道如何做到这一点,谢谢。

最佳答案

在第一次匹配后停止迭代。将 while 更改为 if

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

关于java - 如何使用正则表达式获取第一个匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660260/

相关文章:

ios - 在 iOS 中使用正则表达式进行验证

haskell - 替换 ByteString 中的换行符

rust - 在向下转换后模式匹配具有多个值的枚举时使用移动的值

java - sql server 索引超出范围错误

regex - 从单元格中删除除数字之外的所有内容

javascript - 如何捕获 AngularJS 输入字段中的模式错误?

scala - 为什么 Scala 不能将此匹配优化为开关?

java - 是否可以将 HTML 加载到 jTable 中?

java - 覆盖 equals 并将对象转换为字符串

java - 如何在 android 模拟器中启用麦克风输入