簡體   English   中英

正則表達式匹配任何垂直空格

[英]Regular expression to match any vertical whitespace

是否有一個.NET的正則表達式模式將匹配將導致多行的任何字符,即任何垂直空白字符,如perl正則表達式與\\v 換句話說,有沒有辦法匹配\\r (回車), \\n (換行), \\v (垂直制表符)和\\f (換頁)以及Unicode字符U+0085 (下一行) ), U+2028 (行分隔符)和U+2029 (段落分隔符)以及我不知道可能導致多行的任何其他字符?

我在.NET中編寫了一些驗證代碼,如果用戶提供的輸入文本包含多行,則會失敗。 在大多數情況下,這意味着我只需要檢查\\r\\n 但是,我知道還有很多其他垂直空白字符

我知道.NET正則表達式與perl正則表達式不同 ,最重要的是, \\v .NET中的\\v匹配“垂直制表符”,而它匹配perl正則表達式中的“垂直空白”。

正如你所說,Perl字符類\\v匹配[\\x0A-\\x0D] (換行,垂直制表符,換頁和回車(雖然我會爭議CR是垂直空格))除了非ASCII代碼點[\\x{2028}\\x{2029}] (行分隔符和段落分隔符)。

您可以像這樣在.NET中手工構建此角色類

[\u0A-\u0D\u2028\u2029]

如果想匹配任何未知只是我們沒有設定[^ ]至少在.NET中,我的Perl是有點朦朧)來匹配到一個特定的字符。 例如,如果我想匹配從一行中的當前位置到以字母D開頭的下一行之間的空格,我將使用此

([^D]+)

所以匹配捕獲將包括字母D之前的每種類型的空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM