2014-10-31 59 views
0

试图解析在Visual基础知识使用正则表达式使用Vb.netVB.net正则表达式抢串

这里文本文件之间每一行是一个示例文本:

start_Word

vwfedvnrflevn ,$%^£$

vfrvnrlwivtn,$%435

wrvrtovrv,vorfewnvoew%T%$ 2445645

------------ ++++++++++++ ==========

last_Word

所以我试图抓住成字符串

这里Start_word和Last_Word

之间的所有行是我:

Dim block As Match = Regex.Match(string, (?s)start_Word(.*?)last_Word, RegexOptions.Multiline) 

console.writeline(block.value) 

我好好尝试一下工作,我怎么可以使VB DOTALL和多工作。网

+0

您只需'DOTALL'而不是'multiline'。 – vks 2014-10-31 12:26:54

+0

是的,这就是我要找的,如何添加DOTALL到vb.net – user2879397 2014-10-31 17:14:47

回答

0

您可以在vb.net中的lookbehinds内使用量词。

(?s)(?<=start_Word[^\n]*\n).*?(?=\n\s*last_Word) 
0

尝试用环顾四周,[\w\W]*?匹配多

(?<=^start_Word)\r?\n[\w\W]*?\r?\n(?=last_Word$) 

Online demo

这里^用于行/字符串的开始和$用于行/字符串的结尾。

您也可以使用[\d\D]而不是[\w\W]

+0

不幸的是没有工作,我仍然不能做多行 – user2879397 2014-10-31 17:12:44

+0

使用'@“(?<=^start_Word)\ r?\ n [\ w \ W] *?\ r?\ n(?= last_Word $)“'在C#中。我已经测试过[这里](http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx) – Braj 2014-10-31 18:31:51