我有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