我有JTextPane,其中“int”字为蓝色。这样的正则表达式是错误的,因为它也会着色“打印”:
int + "(\\[\\])*" //To match eg. int[]
所以我想到了这样的正则表达式:
"\\s" + int + "(\\[\\])*"
如果用户在文本窗格中将int作为第一个输入,那么它没关系但不起作用。如何解决这个问题呢?是否有一些符号为NOTHING?所以我可以做:\ s | NOTHING
答案 0 :(得分:5)
只需匹配word boundaries, which are matched by \b
所包围的int
。模式:
"\\bint\\b"
答案 1 :(得分:1)
你想要一个可选空间吗?那将是\\s?
。或者允许零个或多个空格:\\s*
。
答案 2 :(得分:1)
我建议使用它:
/\bint\S*/ig
不完全确定如何转换为Java,但字符串部分将如下所示:
"\\bint\\S*"
正则表达式转换为:
在单词边界后面找到“int”,捕获它和其他任何东西直到空白字符。
它允许你匹配
int[]
int()
interesting
int!@#$%^&*()_+~=-
等等。
如果你只想捕获int[], int()
之类的东西,那么正则表达式显然会有所不同。