我有以下清单
Acid
stuff
goo
nasty
Probable
Acid
more stuff
Probable
Acid
fff
ggg
Probable
我想匹配“酸”和“可能”之间的所有内容。但是我的正则表达式仅匹配最后一个匹配(Acid,fff,ggg,Probable
),而不匹配第一个(Acid,stuff, goo, nasty, Probable
)
调用类:
public static void main(String[] args) throws IOException {
PDFManager pdfManager = new PDFManager();
pdfManager.setFilePath("MyFile.pdf");
String s=pdfManager.ToText();
if(s.contains("Thresholds")){
BravoaltDoc_ExtractionNonDays Sum = new BravoaltDoc_ExtractionNonDays(s);
Sum.ExtractSumNew(s);
public class BravoaltDoc_ExtractionNonDays {
String doc;
}}
ArrayList<String> Day_arr = new ArrayList<String>();
ArrayList<List<String>> Day_table2d = new ArrayList<List<String>>();
String [] seTab3Landmarks=null;
public BravoaltDoc_ExtractionNonDays(String doc) {
this.doc=doc;
}
public String ExtractSumNew(String doc) {
Pattern Tab3Landmarks_pattern = Pattern.compile("Acid?(.*?)Probable",Pattern.DOTALL);
Matcher matcherTab3Landmarks_pattern = Tab3Landmarks_pattern.matcher(doc);
while (matcherTab3Landmarks_pattern.find()) {
doc=matcherTab3Landmarks_pattern.group(1);
seTab3Landmarks=matcherTab3Landmarks_pattern.group(1).split("\\n|\\r");
}
for (String n:seTab3Landmarks){
System.out.println(n);
}
return docSlim;
}
}
您的代码正确找到所有匹配项。但是,由于每个查找都重新分配seTab3Landmarks
,您只会在末尾打印出最后一个匹配项。
如果只想要第一个匹配项,则应使用“ if”块而不是“ while”块(可找到所有匹配项)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句