控制字符的正则表达式是什么?

我正在尝试匹配forms\ ^ c中的控制字符,其中c是控制字符的任何有效字符。 我有这个正则表达式,但它目前无法正常工作: \\[^][@-z]

我认为问题在于插入符号(^)是正则表达式解析引擎的一部分。

使用模式\^.匹配^Xforms的ASCII文本字符串\^. ,仅此而已。 匹配格式为\^X的ASCII文本字符串与模式\\\^. 。 您可能希望将该点限制为[?@_\[\]^\\] ,因此\\\^[AZ?@_\[\]^\\] 。 对于括号中的字符类,它更容易被读作[?\x40-\x5F] ,因此对于文字BACKSLASH来说是\\\^[?\x40-\x5F] ,后面跟着一个文字CIRCUMFLEX,然后变成一个有效的控制字符。

请注意,这是打印出模式或从文件中读取的结果。 这是你需要传递给正则表达式编译器。 如果你把它作为一个字符串文字,你当然必须加倍每个反斜杠。 `\\\\\\^[?\\x40-\\x5F]"是的,这看起来很疯狂,但那是因为Java不支持正则表达式直接作为Groovy和Scala – 或Perl和Ruby – 做。正则表达式工作没有额外的bbaacckksslllllaasshheesssssess总是更容易。:)

如果你有真正的控制字符而不是它们的间接表示,你可以使用\pC表示GC = Other的所有文字代码点,或者对于GC = Control使用\p{Cc}

看看这个: http : //www.regular-expressions.info/characters.html 。 您应该能够使用\ cA到\ cZ来查找控制字符..