2014-10-31 57 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