我有一个巨大的字符串,如下所示:
“文本
文字
文字
文本
文本
文字
文字
文字
文本
文字
文字
文本
“
请注意,每个文本块之间是一个新行。另请注意,最后一个文本块后面有两行新行。所以,当我做一个
string[] strArray = Regex.Split(content, "\r\n");
这很有效,因为它会查找回车后跟新行的模式。但是,对于数组中的最后一个条目,它只创建一个“”(空字符串),因为它在最后一个额外的新行上进行了拆分。
所以我想要一个正则表达式,而不是“\ r \ n”,它将在\ r \ n上分开并且恰好是一个\ n。
任何想法?
答案 0 :(得分:5)
为什么不做这样的事情?
var strArray = content.Split(new[] { "\r\n" },
StringSplitOptions.RemoveEmptyEntries);
答案 1 :(得分:1)
匹配\ r \ n后面没有附加\ n的正则表达式 这对你有帮助吗?我想在上面的例子中,最后一个文本将包含尾随的“\ r \ n \ n”然后...... "\r\n(?!\n)"
答案 2 :(得分:0)
示例字符串的结尾将是
“Text \ r \ nText \ r \ nText \ r \ n \ r \ n”,
不是
“文本\ r \ n文字\ r \ n文字\ r \ n \ n” 个
你似乎在想,即使行是空的,每一行都以“\ r \ n”结尾。 (混淆可能源于\ r被称为“cariage return”而\ n被称为“newline”)。如果你想拆分字符串并忽略任何空行,你可以试试
string[] strArray = Regex.Split(content, "(\r\n)*");