2013-12-09 34 views
0

我试图捕捉到的电子邮件的一部分使用正则表达式。主题行的格式如下reg表达式 - 记录右组(JavaScript)的

字字:字字:使用WORDIWANT一字一句wordword

现在我可以起床第二结肠

(^[a-zA-Z0-9_ ]*:[a-zA-Z0-9_ ]*:)   

例如 - 字字:字字:

那么我可以通过添加得到我想要的字(\ W *)到最后,所以我结束了

(^[a-zA-Z0-9_ ]*:[a-zA-Z0-9_ ]*:)(\w*)     

例如 - 字单词:单词:WORDIWANT

现在我需要的是表达式忽略那些第一部分,我需要的是它只记录第二部分。

编辑:感谢您的回复,到目前为止,不幸的是我目前使用的程序是基于JavaScript的,但不会允许比正则表达式或TOKEN风格的结果,没有详细编码的任何其他。

所以最好我正在寻找只是一个REGEX_MATCH选项

最近我已经能够得到的是(?:(^ [A-ZA-Z0-9_] *:[A-ZA-Z0 -9_] :))|(\ w

这将突出部分WORDIWANT,但仍不确定如何确保它只能看到这一点。

回答

0

试试这个(不能在本地测试):

var myString = "Word Word: Word Word:WORDIWANT word word wordword"; 
var myRegexp = /(^[a-zA-Z0-9_ ]*:[a-zA-Z0-9_ ]:)(\w)/g; 
var match = myRegexp.exec(myString); 
alert(match[2]); // this should be WORDIWANT 
2
"Word Word: Word Word:WORDIWANT word wordword".match(/^(?:[^:]*:){2}(\w+)/)[1]; 

你也可以使用positive look behind(通过更换?:?<=)另一种语言,但JavaScript不支持它。

所以,如果你想在一个replace功能用这句话 - 你需要你的第一场比赛prepend的替换文本(这是一个缺乏在javascript向后看的解决办法)