2012-01-13 40 views
1

嘿我的目标就是像正则表达式 - 比赛开始“XXX”达到下一个出现

FOO 1 
UP 2.0 
DOWN 33 
Blubber [email protected] [email protected] 
FOO 2 
ZZZ 1.0 
X 3 
Blubber [email protected] [email protected] [email protected] 
FOO 4 
ABC D 
Blubber [email protected] [email protected] 

了分离的东西进入FOO的每个块到下一个FOO:

FOO 1 
UP 2.0 
DOWN 33 
Blubber [email protected] [email protected] 

和第二结果

FOO 2 
ZZZ 1.0 
X 3 
Blubber [email protected] [email protected] [email protected] 

等..

我的尝试是得到Regex - match up to next match的答案为我工作,但不真正了解如何。我必须将FOO放在大括号中吗? (FOO)? 我希望有人能帮助我走出森林...
阳光的问候斯特凡

回答

4

split()正前瞻应该工作:

var arr = str.split(/(?=FOO\s\d+)/); 

演示(检查控制台):http://jsfiddle.net/AndyE/6pxuz/

+0

的感谢!如果我理解正确,它会从FOO检查到最后一个数字? – 2012-01-13 22:11:51

+0

好吧,我想我已经明白了它:'(?= xxx)'厕所xxx,只是返回的位置。所以'FOO \ s \ d +'寻找FOO后跟一个空格和一个数字。有没有其他的方法可以用'.match'完成这项工作? – 2012-01-13 22:44:40

+0

@StefanKrüger:你可以尝试'.match(/ [\ s \ S] +?(?= FOO \ s \ d +)/)'。 – 2012-01-13 23:36:49

相关问题