.NET是否有正则表达式模式可匹配将导致多行的任何字符,即任何垂直空格字符,如perl regex所做的那样\v
?换句话说,有一种方法可以匹配\r
(回车),\n
(换行),\v
(垂直制表符)和\f
(换页)以及Unicode字符U+0085
(下一行),U+2028
(行分隔符)和U+2029
(段落分隔符) )和其他我不知道的字符可能会导致一行以上?
我正在.NET中编写一些验证代码,如果用户提供的输入文本包含多行,该验证代码将失败。在大多数情况下,这意味着我只需要检查\r
和\n
。但是,我知道还有许多其他垂直空白字符。
我知道.NET regex与perl regex不同,最重要的是\v
,.NET中的匹配“ vertical tab”,而它匹配perl regex中的“ vertical空白”。
就像您说的那样,除了非ASCII代码点(行分隔符和段落分隔符)之外,Perl字符类还\v
匹配[\x0A-\x0D]
(换行符,垂直制表符,换页符和回车符(尽管我会认为CR是垂直空白)[\x{2028}\x{2029}]
) 。
您可以像这样在.NET中手动构建此字符类
[\u0A-\u0D\u2028\u2029]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句