我有JTextPane,其顏色爲「int」的單詞爲藍色。這樣的正則表達式是錯誤的,因爲它也將色「打印」:正則表達式匹配空格或空格
int + "(\\[\\])*" //To match eg. int[]
所以我來到想法與這樣的正則表達式:
"\\s" + int + "(\\[\\])*"
它不錯,但不工作,如果用戶在文本窗格中詮釋爲第一。如何解決這個問題呢?沒有什麼符號嗎?所以我可以:\ s |沒有
我有JTextPane,其顏色爲「int」的單詞爲藍色。這樣的正則表達式是錯誤的,因爲它也將色「打印」:正則表達式匹配空格或空格
int + "(\\[\\])*" //To match eg. int[]
所以我來到想法與這樣的正則表達式:
"\\s" + int + "(\\[\\])*"
它不錯,但不工作,如果用戶在文本窗格中詮釋爲第一。如何解決這個問題呢?沒有什麼符號嗎?所以我可以:\ s |沒有
只是匹配int
包圍word boundaries, which are matched by \b
。圖案:
"\\bint\\b"
你想要一個可選的空間嗎?那將是\\s?
。或者允許零個或多個空間:\\s*
。
我建議使用此:
/\bint\S*/ig
不能完全確定怎麼說轉換爲Java,但絃線部分是這樣的:
"\\bint\\S*"
正則表達式語句:
在字邊界後面找到「int」,將其捕獲,然後進行其他任何操作,直到出現空白字符。
它可以讓你搭配
int[]
int()
interesting
[email protected]#$%^&*()_+~=-
等等等等
如果你想只捕獲int[], int()
之類的,正則表達式顯然是不同的。
'\\ s *'? – 2013-03-04 17:34:34
使用單詞邊界。 – Shmiddty 2013-03-04 17:35:26
嘗試''\\ bint \\ S *'''S *'允許使用0個或更多的非空白字符,因此您可以匹配'int()','int []'等。 – Shmiddty 2013-03-04 17:45:37