2011-05-19 23 views
0

我需要一个正则表达式匹配INTINT,INT,拆分字符串,字符串还可以包含像INTEGER,INT444,整数2等类似的词语但他们应该被忽略。的Javascript正则表达式匹配“诠释”

var str = 'INTEGER INT, INTEGER2 INT , TEST INT'; 
str = str.split(/INT[\,\)\s]*[^A-Za-z0-0]/gi); 

正则表达式只匹配INT,(INT +逗号)和INT,(INT +空格+逗号),但不INT(仅单词INT)。
任何帮助?

回答

1

您的意思是?

var str = 'INTEGER INT, INTEGER2 INT , TEST INT'; 
str = str.split(/INT(?=(?: ?,|$))/gi); // ["INTEGER ", ", INTEGER2 ", " , TEST ", ""] 

这就是所谓的正向先行,更多关于它在这里:http://www.javascriptkit.com/javatutors/redev2.shtml

+0

最后一个元素必须是''TEST'' – Toto 2011-05-19 13:08:23

0

我不知道我理解你的问题,但我认为这是你问什么。

INT,|INT |INT(?![A-Za-z0-9]) 
0

如何:

/INT\b\s*,?/ 

在你的榜样,它给:

["INTEGER ", " INTEGER2 ", " TEST "] 
0

也许你正在寻找的字边界\b

\bINT\b 

\b无线会匹配包含在\w中的字符与其他字符之间的边界。