示例輸入: 是否xxx xxx(可能是任意數量的單詞)是生還是死?正則表達式,以匹配具有固定前綴和後綴的可變數量的作品
例如:
Did Michael Jackson live or die ?
我想捕捉:邁克爾·傑克遜,生活,死亡。句子之間可以有任意數量的空格。
我該怎麼做?
示例輸入: 是否xxx xxx(可能是任意數量的單詞)是生還是死?正則表達式,以匹配具有固定前綴和後綴的可變數量的作品
例如:
Did Michael Jackson live or die ?
我想捕捉:邁克爾·傑克遜,生活,死亡。句子之間可以有任意數量的空格。
我該怎麼做?
像這樣的工作。你需要把第一組邁克爾傑克遜帶到空間角色。
Pattern regex = Pattern.compile("^Did (.+)\s+(\w+)\s+or\s+(\w+)$",
Pattern.CASE_INSENSITIVE |
Pattern.UNICODE_CASE);
Matcher regexMatcher = regex.matcher(subjectString);
if (regexMatcher.find())
{
String []person = regexMatcher.group(0).split(" ");
String action1 = regexMatcher.group(1);
String action2 = regexMatcher.group(2);
}
Did\\s+(.+)\\s+(\\S+)\\s+or\\s+(\\S+)\\s*\\?
還是我錯過了什麼?
編輯:改變單一的反斜槓反斜槓加倍
沒有。不起作用。 – Saobi 2009-09-26 03:38:31
嗯...雖然你可以做這樣的事情,但我希望你認識到使用正則表達式從自然語言中提取信息會給你一個有限的,脆弱的解決方案。如果你想要一個強大的解決方案,你需要研究自然語言分析技術。 – 2009-09-26 05:35:39