如何解决VB.Net正则表达式…正在提取一个值
| 如何在VB.Net中使用RegularExpressions类从字符串中提取值?例如,说我有字符串:[Mon Jan 4 2011] Blah Blah2 Other text
并且我想将“ 2011年1月4日星期一”部分返回给变量。我以为您会使用\“ Regex.Replace \”方法,但是我似乎无法弄清楚如何提取所需的字符串部分。
解决方法
在这种情况下,我认为您不需要替换文本,而是需要匹配文本。
Regex.Match(input,\"(?<=\\[)[^\\]]+\").Value
从第一个[
之后的所有文本直到下一个]
的所有文本。
编辑:错过了方括号。
, 您可以使用匹配组-具体命名所需的表达式部分,然后按名称引用它:
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
, 尝试使用正则表达式:
\\x5B([^\\x5D]+)
, 您还可以使用以下代码实现您的目标:
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
在此代码中,匹配的结果将存储在名为“ѭ7”的组中,并将相应地使用。
, 我建议您在这里关注该文章:
http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。