控制字符的正则表达式是什么?
我正在尝试匹配\ ^ c形式的控制字符,其中c是控制字符的任何有效字符。我有这个正则表达式,但目前无法使用:\\[^][@-z]
我认为问题在于,插入符号(^)是正则表达式解析引擎的一部分。
回答:
^X
使用pattern
匹配形式的ASCII文本字符串\^.
,仅此而已。将形式的ASCII文本字符串\^X
与模式匹配\\\^.
。你不妨约束点缀到[?@_\[\]^\\]
,所以\\\^[A-Z?@_\[\]^\\]
。[?\x40-\x5F]
对于方括号字符类而言,它更容易阅读,因此\\\^[?\x40-\x5F]
对于原义BACKSLASH,其后是原义CIRCUMFLEX,以及随后变成有效控制字符之一的事物而言,它更容易阅读。
请注意,这是打印出图案或从文件中读取的结果。这就是您需要传递给regex编译器的内容。如果您将其作为字符串文字使用,那么您当然必须将每个反斜杠加倍。`\\\\\\^[?\\x40-\\x5F]"
是的,看起来很疯狂,但这是因为Java不像Groovy和Scala(或者Perl和Ruby)那样直接支持正则表达式。没有额外的bbaacckksslllllaasshheesssssess,正则表达式的工作总是很容易。:)
如果您有真正的控制字符,而不是它们的间接表示形式,则可以\pC
对所有具有属性GC = Other的文字代码点使用,或\p{Cc}
仅用于GC =
Control。
以上是 控制字符的正则表达式是什么? 的全部内容, 来源链接: utcz.com/qa/409350.html