如何在VB.Net中使用RegularExpressions类从字符串中提取值?例如,假设我有字符串:
[Mon Jan 4 2011] Blah Blah2 Other text
我希望将“2011年1月4日星期一”部分返回给变量。我以为你会使用“Regex.Replace”方法,但我似乎无法弄清楚如何提取我想要的字符串部分。
答案 0 :(得分:4)
在这种情况下,我认为您不需要替换文本,而是需要匹配文本。
Regex.Match(input, "(?<=\[)[^\]]+").Value
这会在第一个[
之后直到下一个]
收到所有文字。
编辑:错过方括号。
答案 1 :(得分:2)
您可以使用匹配组 - 专门命名所需表达式的一部分,并按名称引用它:
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\[(?<datestring>[^\]]+)\]"
Dim input As String = "[Mon Jan 4 2011] Blah Blah2 Other text"
Dim match As Match = Regex.Match(input, pattern)
' Get the first named group.
Dim group1 As Group = match.Groups.Item("datestring")
Console.WriteLine("Group 'datestring' value: {0}", If(group1.Success, group1.Value, "Empty"))
End Sub
End Module
答案 2 :(得分:0)
尝试使用正则表达式:
\x5B([^\x5D]+)
答案 3 :(得分:0)
您也可以使用此代码来实现目标:
Dim str As String = "[Mon Jan 4 2011] Blah Blah2 Other text"
Dim m As Match = Regex.Match(str, "\[(?<tag>[^]]*)")
If (m.Success) Then
Debug.Print(m.Result("${tag}")) ' Check "Output Window"
End If
在此代码中,匹配的结果将存储在命名组tag
中,并将相应地使用。
答案 4 :(得分:0)