這是我的代碼部分:如何讓我的正則表達式實現我的目標?
String subArray[]=sub.split(" ");
StringBuilder patternbuilder=new StringBuilder();
for (int i = 0; i < subArray.length; i++) {
patternbuilder.append("("+subArray[i]+")"+"?");
}
String subpattern=patternbuilder.toString();
Pattern pattern=Pattern.compile(subpattern);
Matcher matcher = pattern.matcher(para);
while (matcher.find()) {
NamedEntity subEntity=new NamedEntity(jCas, matcher.start(), matcher.end());
subEntity.setValue(matcher.group());
}
這是我的正則表達式:(adam)?(hecktman)?
這是示例文件:
在微軟之前,亞當與安達信諮詢公司顧問三年。在andersen諮詢公司工作期間,adam與包括金融服務,政府和公用事業公司在內的客戶合作。亞當在伊利諾伊大學獲得了((nam:理學學士學位))商業和工商管理學位。他還擁有工商管理碩士學位。
我想提取模式,其中必須至少有一個詞"adam hecktman"
,但我總是不能用我的正則表達式。我總是得到""
一個空字符串。如何實現我的目標?
嘗試'(ADAM)|(hecktman)'。你們允許他們兩個都因爲'?'而失蹤。 – ShellFish