2013-03-04 102 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()之类的,正则表达式显然是不同的。