2009-12-22 71 views
0

我有点困惑如何最好地使用正则表达式,希望我能得到一些帮助,我想提取从INI文件的URL值这样:如何使用正则表达式从INI文件中提取特定值?

[DEFAULT] 
BASEURL=http://www.stackoverflow.com/ 
[InternetShortcut] 
URL=http://www.stackoverflow.com/ 

这样我就可以得到URL值来自正则表达式的唯一匹配 - 但我对他们还不够了解(但)要做到这一点。
我已经看到RegEx的例子,它将解析任何INI文件并获取名称,值对我只想从文件中获取URL值,而不管它包含哪些内容。
我的目标是有这样的事情:

Dim _pattern As New Text.RegularExpressions.Regex("RegEx") 
Dim _url As String = _pattern.Match(iniContentString).Value 

它似乎很简单,但我似乎不能创建一个特定的情况下,正则表达式,我想一切从“URL =”到vbCrLf在最终成为我的“比赛”。
我已经提到了Regular-Expressions.info,之前曾经有过帮助,但仍然无法获得这个简单的例子。

+2

愚蠢的问题,但是有没有原因你不使用“GetPrivateProfileString”?这正是你想要做的http://msdn.microsoft.com/en-us/library/ms724353(VS.85).aspx – 2009-12-22 14:36:08

+0

这需要P/Invoke。 – SLaks 2009-12-22 14:37:24

+1

另外,你使用的是什么实际的正则表达式?即在正则表达式(“RegEx”)中出现“Regex”的位置 – 2009-12-22 14:37:59

回答

1

像这样:

New Regex("^URL=(.*)$", RegexOptions.Multiline).Match(iniContent).Groups[1].Value 

注意,这将匹配任何URL=线,它的任何部分
如果这不是你想要的,请告诉我。

编辑:它实际上应该是.Groups[1].Value;这将不包括URL=

+0

这更像是我需要的东西,我只用它们来表示字符而不是整个字符串。这确实有效,但我仍然可以获得“URL =”部分 - 可以排除这一部分,否则我将使用字符串替换来摆脱它并标记为答案。 – RoguePlanetoid 2009-12-22 14:47:07

+0

感谢您的编辑,URL和匹配是两个独立的组 - 我总是想知道是否有RegEx的“返回”部分。不知道,这现在有用! – RoguePlanetoid 2009-12-22 14:56:08

相关问题