我有以下几行
我们理解这一要求是另一个联盟的后续行动。此信息不保证提供。
我试图从线上获得3个字符串ein anderes Konsortium
,但目前kgString
是空的。保持KEYWORD, MULTIMATCHPATTERN, INFORMATIONSEXTRAKTOR
结构对我来说很重要。如何通过正则表达式从行中获取ein anderes Konsortium
字符串?
public class KlassifizierungsgruppenParser implements BedarfsanforderungParser {
private static final String KEYWORD = ".*Nach unserer Information handelt es sich bei dieser Bedarfsanforderung um einen Folgeabruf ";
private static final String MULTIMATCHPATTERN = "[\\s\\*\\t]*";
private static final String INFORMATIONSEXTRAKTOR = "(ein\\s.*anderes.*Konsortium)";
private static final Pattern KGPATTERN = Pattern.compile("^" + KEYWORD + MULTIMATCHPATTERN + INFORMATIONSEXTRAKTOR + "$", Pattern.MULTILINE);
@Override
public void parse(String volltext, Abruf abruf) {
fillKG(volltext, abruf);
}
private void fillKG(String volltext, Abruf abruf) {
System.out.println("volltext: " + volltext);
String kgString = getKg(volltext);
System.out.println("kgString: " + kgString);
}
private String getKg(String volltext) {
Matcher matcher = KGPATTERN.matcher(volltext);
if (matcher.find()) {
return matcher.group(1);
} else {
return "";
}
}
}
该模式编译为"^.*Nach unserer Information handelt es sich bei dieser Bedarfsanforderung um einen Folgeabruf [\\s\\*\\t]*(ein\\s.*anderes.*Konsortium)$"
,有两个地方与输入不匹配:
[\\s\\*\\t]*
与für
不匹配 - 要么使用.*
,要么将für
添加到KEYWORD。$
与". Diese Information erfolgt ohne Gewähr."
不匹配您可能想删除它。您可能还想练习正则表达式(例如https://regex101.com/,https://regexr.com/,https://www.regextester.com/等)以更好地了解它的工作原理。