2013-03-04 89 views
4

我有JTextPane,其顏色爲「int」的單詞爲藍色。這樣的正則表達式是錯誤的,因爲它也將色「打印」:正則表達式匹配空格或空格

int + "(\\[\\])*" //To match eg. int[] 

所以我來到想法與這樣的正則表達式:

"\\s" + int + "(\\[\\])*" 

它不錯,但不工作,如果用戶在文本窗格中詮釋爲第一。如何解決這個問題呢?沒有什麼符號嗎?所以我可以:\ s |沒有

+1

'\\ s *'? – 2013-03-04 17:34:34

+0

使用單詞邊界。 – Shmiddty 2013-03-04 17:35:26

+0

嘗試''\\ bint \\ S *'''S *'允許使用0個或更多的非空白字符,因此您可以匹配'int()','int []'等。 – Shmiddty 2013-03-04 17:45:37

回答

1

你想要一個可選的空間嗎?那將是\\s?。或者允許零個或多個空間:\\s*

1

我建議使用此:

/\bint\S*/ig 

不能完全確定怎麼說轉換爲Java,但絃線部分是這樣的:

"\\bint\\S*" 

正則表達式語句:

在字邊界後面找到「int」,將其捕獲,然後進行其他任何操作,直到出現空白字符。

它可以讓你搭配

int[] 
int() 
interesting 
[email protected]#$%^&*()_+~=- 

等等等等

如果你想只捕獲int[], int()之類的,正則表達式顯然是不同的。

相關問題