Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不带制表符的空白的RegExp_Java_Regex - Fatal编程技术网

Java 不带制表符的空白的RegExp

Java 不带制表符的空白的RegExp,java,regex,Java,Regex,我正在尝试为sonar插件构建一个解析器,其中令牌可以包含空格和制表符,以便使用它们实现空格检查规则。因此,我想将它们存储到不同的令牌中 我将空格和制表符设置为TokenType: .withChannel(regexp(TokenType.TAB, "\t")) .withChannel(regexp(TokenType.WHITESPACE, "\\s")) 但是,制表符也被视为空格标记, 因为在Java中,/s的regexp匹配任何空白字符(空格、制表符、换行符、回车符)

我正在尝试为sonar插件构建一个解析器,其中令牌可以包含空格和制表符,以便使用它们实现空格检查规则。因此,我想将它们存储到不同的令牌中

我将空格和制表符设置为TokenType:

    .withChannel(regexp(TokenType.TAB, "\t"))
    .withChannel(regexp(TokenType.WHITESPACE, "\\s"))
但是,制表符也被视为空格标记, 因为在Java中,
/s
的regexp匹配任何空白字符(空格、制表符、换行符、回车符)


什么是区分制表符和空格的正确regexp?

我不熟悉
TokenType
语法,但要获得所有空白而不使用制表符,您可以使用:

[ \n\x0b\r\f]

因为
\s
只是
[\t\n\x0B\f\r]
的一种简写形式。请参阅。

我不熟悉
TokenType
语法,但要获得所有空白,而不使用选项卡,您可以使用:

[ \n\x0b\r\f]
因为
\s
只是
[\t\n\x0B\f\r]
的一种简写形式。请参阅带有以下内容的。

.withChannel(new BlackHoleChannel("\n"))        //removes newlines from source code
.withChannel(regexp(TclTokenType.TAB, "\t"))    //matches tabs
.withChannel(regexp(TokenType.WHITESPACE," "))  //matches spaces
正确匹配空格,并识别制表符。该键位于
BlackHoleChannel

这是FILIaS对这个问题的解答。

包括:

.withChannel(new BlackHoleChannel("\n"))        //removes newlines from source code
.withChannel(regexp(TclTokenType.TAB, "\t"))    //matches tabs
.withChannel(regexp(TokenType.WHITESPACE," "))  //matches spaces
正确匹配空格,并识别制表符。该键位于
BlackHoleChannel


这是FILIaS对这个问题的解决方案。

在我的案例中,检查并将其转过来,我需要单独的regexp,只是“[]”对我不起作用:/我也尝试过:“[\\s^\t]”但仍然不起作用检查并将其转过来在我的案例中,我需要单独的regexp,只是“[]”对我不起作用:/我也尝试过:“[\\s^\t]”但仍然不起作用这不是TokenType的有效语法,但无论如何,在我的例子中,我甚至不需要换行符或行尾,只需要空格,而是“[]”不做我的工作所以你所说的空白意味着空格?它不是TokenType的有效语法,但不管怎样,在我的例子中,我甚至不需要换行符或行尾空白,但“[]”不做我的工作所以你所说的空白意味着空格?