簡體   English   中英

正則表達式匹配除crlf之外的全行文本

[英]Regex to match full lines of text excluding crlf

正則表達式模式如何匹配給定文本的每一行?

我正在嘗試^(.+)$但它包括crlf ...

只需使用RegexOptions.Multiline

多線模式。 更改^和$的含義,使它們分別在任何行的開頭和結尾匹配,而不僅僅是整個字符串的開頭和結尾。

例:

var lineMatches = Regex.Matches("Multi\r\nlines", "^(.+)$", RegexOptions.Multiline);

我不確定“匹配給定文本的每一行”是什么意思,但你可以使用一個字符類來排除CR和LF字符:

[^\r\n]+

你的問題的措辭似乎有點不清楚,但聽起來你想要RegexOptions.Multiline (在System.Text.RegularExpressions命名空間中)。 這是您必須在RegEx對象上設置的選項。 這應該使^$匹配一行的開頭和結尾而不是整個字符串。

例如:

Regex re = new Regex("^(.+)$", RegexOptions.Compiled | RegexOptions.Multiline);

你有沒有嘗試過:

^(.+)\r?\n$

這樣匹配組包括除CRLF之外的所有內容,並且要求存在新行(Unix默認值),但接受前面的回車符(Windows默認值)。

我假設您正在使用Multiline選項? 在這種情況下,您需要明確地將換行符與“\\ n”匹配。 (視情況用“\\ r \\ n”代替。)

暫無
暫無

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

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