gpt4 book ai didi

第一个匹配字符串的 Java 正则表达式

转载 作者:行者123 更新时间:2023-12-01 18:18:06 24 4
gpt4 key购买 nike

我有一个字符串hhht 。我需要 grep 12121212 & 56565656从字符串中。到目前为止我尝试过的内容如下所示。

String hhht = "dhdhdh<a:Rakesh>12121212</a:Rakesh>sdsdvsdvsvvsv"+"sfsf"+"<a:Rakesh>56565656</a:Rakesh>zvnbjvbj";

Pattern pattern = Pattern.compile("<a:Rakesh>(.+)</a:Rakesh>");
Matcher matcher = pattern.matcher(hhht);

for(int hh = 0 ;hh <matcher.groupCount(); hh++){
if(matcher.find())
System.out.println(matcher.group(hh+1));

}

我得到的输出为,

12121212</a:Rakesh>sdsdvsdvsvvsvsfsf<a:Rakesh>56565656

即,该模式与第一个 <a:Rakesh> 匹配标签。

最佳答案

  1. 使用非贪婪正则表达式 DOTALL标志:

    Pattern pattern = Pattern.compile("(?s)<a:Rakesh>(.+?)</a:Rakesh>");
  2. 你无法得到 matcher.groupCount()在调用find之前

像这样使用

if(matcher.find()) {
for(int hh = 0; hh <= matcher.groupCount(); hh++){
System.out.println(matcher.group(hh+1));
}
}

关于第一个匹配字符串的 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28409432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com