文字: 「AAAA」正則表達式的多重比賽?
模式: 「AA」
然後將兩個賽:AA(0,1),AA(2,3)
,如果我想三個賽:AA( 0,1),aa(1,2),aa(2,3)。 (我相信這是一個經典的問題,我不知道該怎麼形容這樣的:'()
我怎樣才能做到這一點在Java或Python或其他
文字: 「AAAA」正則表達式的多重比賽?
模式: 「AA」
然後將兩個賽:AA(0,1),AA(2,3)
,如果我想三個賽:AA( 0,1),aa(1,2),aa(2,3)。 (我相信這是一個經典的問題,我不知道該怎麼形容這樣的:'()
我怎樣才能做到這一點在Java或Python或其他
看到這個代碼在這裏:
String str = "aaaa";
Pattern p1= Pattern.compile("(aa)");
Matcher matcher = p.matcher(str);
int start = -1;
while(matcher.find(start + 1)) {
start = matcher.start(0);
System.out.println("Found: " + start);
}
它輸出:
Found: 0
Found: 1
Found: 2
這基本上是你如何從那裏尋找Java中的下一場比賽操縱希望這將有助於你
。謝謝你,你是第一個。 – DouO 2012-03-24 08:37:21
在Python中你可以使用re.finditer
和前向斷言:
s = 'aaaa'
import re
matches = re.finditer(r'(?=(a{2}))', s)
results = [match.group(1) for match in matches]
# -> ['aa', 'aa', 'aa']
謝謝,這很有幫助。 – DouO 2012-03-24 08:38:24
你應該使用模式和匹配嘗試java.util.regex中周圍的東西。先嚐試一下,展示你的嘗試。這是一個4線問題,谷歌可能會幫助。 – Snicolas 2012-03-24 08:20:48
你是對的。我太愚蠢。我誤解了Matcher類。 – DouO 2012-03-24 08:35:56