文字: “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