5

我有 JTextPane 将“int”字涂成蓝色。这样的正则表达式是错误的,因为它也会为“打印”着色:

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

所以我想到了这样的正则表达式:

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

没关系,但如果用户在文本窗格中键入 int 作为第一个,则不起作用。如何解决这个问题呢?有没有什么象征?所以我可以制作:\s | 没有

4

3 回答 3

6

只需匹配由 . 匹配的单词边界int包围。图案:\b

"\\bint\\b"

在永远优秀的 regular-expressions.info上阅读更多内容。

于 2013-03-04T17:34:56.957 回答
1

你想要一个可选的空间吗?那将是\\s?。或允许零个或多个空格:\\s*.

于 2013-03-04T17:34:38.547 回答
1

我建议使用这个:

/\bint\S*/ig

不完全确定如何将其转换为 Java,但字符串部分如下所示:

"\\bint\\S*"

正则表达式转换为:

在单词边界之后找到“int”,捕获它和其他任何东西,直到一个空白字符。

它允许你匹配

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

等等等等

如果您只想捕获int[], int()等,则正则表达式显然会有所不同。

于 2013-03-04T17:48:00.237 回答