我试图找到一种方法来抓住两个单词之间包含的字符串,但我无法弄清楚如何去做。我需要将每一行添加到列表框中。
例如:
First:
http://google.com
http://yahoo.com
default
Second:
http://facebook.com
http://123.com
http://test.com
default
以此为例,第一个列表框需要包含以下项目:
http://google.com
http://yahoo.com
default
第二个列表框应该包含这些项目:
http://facebook.com
http://123.com
http://test.com
default
这怎么可能?我只知道如何使用split来获取两个单词之间的字符串,但在这种情况下它不起作用。 提前谢谢。
答案 0 :(得分:1)
我想你想要这样的东西,
(?<=\n|^)First:(?:(?!\n\n).)*?(http://google\.com)(?:(?!\n\n|$).)*?(http://yahoo\.com)(?:(?!\n\n).)*?default(?=\n\n)|(?<=\n|^)Second:(?:(?!\n\n).)*?(http://facebook\.com)(?:(?!\n\n).)*?(http://123\.com)(?:(?!\n\n).)*?(http://test\.com)(?:(?!\n\n).)*?default(?=\n\n|$)
答案 1 :(得分:1)
这样的事情怎么样:
(?<=First:)(.*)
使用此代码:
Dim options = RegexOptions.Singleline
Dim sampleInput="First:" + Environment.NewLine + "http://google.com" + Environment.NewLine + "http://yahoo.com" + Environment.NewLine + "default"
Dim results = Regex.Match(sampleInput,"(?<=First:)(.*)",options).Value
答案 2 :(得分:1)
根据您的数据,您可以考虑使用否定前瞻来匹配您想要的行。
For Each m As Match In Regex.Matches(input, "(?m)^(?!(?:First|Second):).+$")
ListBox1.Items.Add(m.Value)