Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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正则表达式,除\r和\n之外的所有ASCII_Java_Regex - Fatal编程技术网

Java正则表达式,除\r和\n之外的所有ASCII

Java正则表达式,除\r和\n之外的所有ASCII,java,regex,Java,Regex,我正在尝试检查字符串是否包含除\r和\n之外的有效ASCII字符。我使用\p{ASCII}+作为有效ASCII的正则表达式,并且尝试了[\p{ASCII}+&&[^\n\r]]],但它似乎不起作用 您可以将所需的集合表示为[\x00-\x09\x0B\x0C\x0E-\x7F],该集合在逻辑上是[\x00-\x7F]集合,没有换行符(\x0A)和回车符(\x0D) 因为Java支持字符集减法,所以您也可以尝试[\x00-\x7F&&[^\x0A\x0D]]&在正则表达式中不表示“和”。@PM77

我正在尝试检查字符串是否包含除
\r
\n
之外的有效ASCII字符。我使用
\p{ASCII}+
作为有效ASCII的正则表达式,并且尝试了
[\p{ASCII}+&&[^\n\r]]]
,但它似乎不起作用

您可以将所需的集合表示为
[\x00-\x09\x0B\x0C\x0E-\x7F]
,该集合在逻辑上是
[\x00-\x7F]
集合,没有换行符(
\x0A
)和回车符(
\x0D


因为Java支持字符集减法,所以您也可以尝试
[\x00-\x7F&&[^\x0A\x0D]]

&
在正则表达式中不表示“和”。@PM77-1:在Java中是这样的。更准确地说,
[\p{ASCII}&[^\n\r]]
是两个集合的交集,即所有ASCII字符和所有非换行符或回车符的字符。Java首先实现了它,但它现在是Unicode标准的一部分,我在一两个其他版本中看到过它。@OP,您的正则表达式应该可以工作。如果要验证,加号应该在括号外(在括号内,它是一个文字加号),并且必须锚定匹配。(如果未使用
matches()
方法,则需要向正则表达式本身添加锚定:
^[\p{ASCII}&[^\n\r]]+$