簡體   English   中英

正則表達式使用\\拆分多行字符串

[英]Regex split a multiline string using \

我已經嘗試過RegexOptions.MultiLine的所有可能組合和轉義的反斜杠,以便使用\\作為分隔符分割文本。

我有這段文字:

The quick brown
Fox jumps\
Over the
Lazy dog\

我想把它分成

The quick brown
Fox jumps\

Over the
Lazy dog\

到目前為止,我已經嘗試過(連同對Regex的Split方法的調用):

Regex regexSplit = new Regex(@"\\$", RegexOptions.Multiline);
Regex regexSplit = new Regex(@"\$", RegexOptions.Multiline);
Regex regexSplit = new Regex(@"\\$", RegexOptions.Singleline);
Regex regexSplit = new Regex(@"\$", RegexOptions.Singleline);
Regex regexSplit = new Regex(@"\\$");
Regex regexSplit = new Regex(@"\$");

每次我取回完整的原始字符串。 你可以幫我一把嗎?

先感謝您。

編輯:我刪除了多余的空間。 之所以需要使用正則表達式,是因為\\可能位於“”或“”內的匹配項內。 這就是為什么我也需要在行尾匹配的原因。

當我使用RegexBuddy和相同的輸入文本測試表達式時,我必須添加\\\\$可以工作。

您在“ Fox jumps \\”處有多余的空間,因此 @"\\\\$"不匹配。 刪除空格或使用 @"\\\\"進行拆分。 您也可以檢查空格 @"\\\\\\s*$"

這應該可以解決問題:

var results = Regex.Split(subject, @"\\\s*$", RegexOptions.Multiline);

為什么不分割這個簡單的字符串:

        string s = "The quick brown\r\nFox jumps\\\\r\n Over the\r\nLazy dog\\";
    s.Split(new string[] { "\\\r\n" }, StringSplitOptions.RemoveEmptyEntries);

暫無
暫無

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

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