2011-05-19 22 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中的字符與其他字符之間的邊界。