Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用换行符和换行符重复正则表达式模式_Regex_Vb.net_Visual Studio 2010 - Fatal编程技术网

Regex 使用换行符和换行符重复正则表达式模式

Regex 使用换行符和换行符重复正则表达式模式,regex,vb.net,visual-studio-2010,Regex,Vb.net,Visual Studio 2010,如何获取具有换行符(vbNewLine、vblf、vbcrlf等)和换行符的字符串。以下内容似乎只是检索“第一行文本” 预期结果:search=“第一行文本。第二行文本。第三行文本。”查看RegexOptions“RegexOptions.MultiLine”。它应该是Regex对象的第二个参数,如下所示: rx = New Regex(".*[\n\r]", RegexOptions.MultiLine) 我想那就行了。 如果只是用空格替换换行符,那么函数字符串.replace也就足够了。要

如何获取具有换行符(vbNewLine、vblf、vbcrlf等)和换行符的字符串。以下内容似乎只是检索“第一行文本”


预期结果:search=“第一行文本。第二行文本。第三行文本。”

查看RegexOptions“RegexOptions.MultiLine”。它应该是Regex对象的第二个参数,如下所示:

rx = New Regex(".*[\n\r]", RegexOptions.MultiLine)
我想那就行了。
如果只是用空格替换换行符,那么函数字符串.replace也就足够了。

要用正则表达式匹配多行模式,必须使用singleline选项。它修改点行为,以便捕获每个字符,包括换行符

rx = New Regex("(?s).*")

链接到msdn。

要获得不仅仅是第一个匹配,请使用
rx.Matches(var1)
。在此之后,您可以迭代集合

但是请注意,您的正则表达式有一个错误:最后一行不会匹配,因为后面没有换行符。一个简单的解决方法是:

rx = new Regex("\n");
var matches = rx.Split(var1);
//iterate collection

注意,由于标签的原因,代码是c#格式的。

这就成功了。我不得不将它调整为rx=newregex(“(?s)。*”)。谢谢
rx = new Regex("\n");
var matches = rx.Split(var1);
//iterate collection