[英]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.