VB.net中如何将正则表达式小括号中的内容提取出来?

比如正则表达式为SearchPattern="(.+)a(.+)c(.+)"DimRegexAsSystem.Text.RegularExpressions.RegexR... 比如正则表达式为
SearchPattern="(.+)a(.+)c(.+)"
Dim Regex As System.Text.RegularExpressions.Regex
Regex = New System.Text.RegularExpressions.Regex(SearchPattern)
Dim Matchs As System.Text.RegularExpressions.MatchCollection
Dim IsMatch As Boolean = Regex.IsMatch(StrForSearch)
Matchs = Regex.Matches("China Public National") ,执行了此句之后,如何将SearchPattern中的指定的 那个三个小括号对应的内容即SubMatches(0)="Chin" SubMatches(1)=" Publi" SubMatches(2)=" National" 提取出来呢?
我用如下 ,提取不出来呢!
For Each Mt In Matchs
On Error Resume Next
S = S & Macth.Groups(0).Value & Chr(0)
Next
哦。原来 Matchs.Count 相当于vb6的Mhs.count
Matchs.Item(i).Groups.Item(j).Value相当于vb6的Mh.SubMatches(j)
展开
 我来答
flynn_zhang
2016-04-09
知道答主
回答量:9
采纳率:0%
帮助的人:9844
展开全部
MatchCollection
Dim IsMatch As Boolean = Regex,如何将SearchPattern中的指定的 那个三个小括号对应的内容即SubMatches(0)=".RegularExpressions.Groups(0);) !
For Each Mt In Matchs
On Error Resume Next
S = S & Macth; Publi" SubMatches(2)=".RegularExpressions; SubMatches(1)=".Matches(",提取不出来呢;Chin".RegularExpressions.Regex(SearchPattern)
Dim Matchs As System;China Public National".+)"?
我用如下 ; 提取出来呢.Text.Regex
Regex = New System; National".IsMatch(StrForSearch)
Matchs = Regex.+)c(,执行了此句之后;(.Text.Text.+)a(;
Dim Regex As System比如正则表达式为
SearchPattern=",具体解决方案如下:
解决方案1:
在这之后的字符会显示不出来.RegularExpressions.Regex(SearchPattern)
Dim Matchs As System;Groups集合索引从0开始.Item(i),但是第一项是完整匹配项,这个是字符串的结束标记.+)c(,接下去才是子项
S = S & .Text;"Dim IsMatch As Boolean = Regex.RegularExpressions,但是不要用Chr(0).Regex
Regex = New System;China Public National".RegularExpressions.Value & vbcrlf
Next
也是可以的;
With Matchs; ".Count - 1 '.Text.MatchCollection
'.+)".IsMatch(StrForSearch)
Matchs = Regex:
For Each Mt In Matchs.groups
S = S & Mt.Item(0);
Next
End With
MsgBox(S)

你的循环改成.Matches(")
Dim S As String = "
Dim Regex As System.Item(0).Value & "Dim SearchPattern As String = ".Text.Groups
For i As Integer = 1 To ;(.+)a(
提问者评价
多谢指教!
解决方案2:
Dim SearchPattern As String = "(.+)a(.+)c(.+)"
Dim Regex As System.Text.RegularExpressions.Regex
Regex = New System.Text.RegularExpressions.Regex(SearchPattern)
Dim Matchs As System.Text.RegularExpressions.MatchCollection
'Dim IsMatch As Boolean = Regex.IsMatch(StrForSearch)
Matchs = Regex.Matches("China Public National")
Dim S As String = ""
With Matchs.Item(0).Groups
For i As Integer = 1 To .Count - 1 'Groups集合索引从0开始,但是第一项是完整匹配项,接下去才是子项
S = S & .Item(i).Value & " "
Next
End With
MsgBox(S)
解决方案3:
Dim matches As MatchCollection = rx.Matches("(.*)")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szqaly
2015-01-16 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1541万
展开全部
Dim SearchPattern As String = "(.+)a(.+)c(.+)"
Dim Regex As System.Text.RegularExpressions.Regex
Regex = New System.Text.RegularExpressions.Regex(SearchPattern)
Dim Matchs As System.Text.RegularExpressions.MatchCollection
'Dim IsMatch As Boolean = Regex.IsMatch(StrForSearch)
Matchs = Regex.Matches("China Public National")
Dim S As String = ""
With Matchs.Item(0).Groups
For i As Integer = 1 To .Count - 1 'Groups集合索引从0开始,但是第一项是完整匹配项,接下去才是子项
S = S & .Item(i).Value & " "
Next
End With
MsgBox(S)

你的循环改成:
For Each Mt In Matchs.Item(0).groups
S = S & Mt.Value & vbcrlf
Next
也是可以的,但是不要用Chr(0),这个是字符串的结束标记,在这之后的字符会显示不出来。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-11-12
展开全部
Dim SearchPattern As String = "(.+)a(.+)c(.+)"
Dim Regex As System.Text.RegularExpressions.Regex
Regex = New System.Text.RegularExpressions.Regex(SearchPattern)
Dim Matchs As System.Text.RegularExpressions.MatchCollection
'Dim IsMatch As Boolean = Regex.IsMatch(StrForSearch)
Matchs = Regex.Matches("China Public National")
Dim S As String = ""
With Matchs.Item(0).Groups
For i As Integer = 1 To .Count - 1 'Groups集合索引从0开始,但是第一项是完整匹配项,接下去才是子项
S = S & .Item(i).Value & " "
Next
End With
MsgBox(S)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wiser961
2015-10-31 · TA获得超过130个赞
知道答主
回答量:219
采纳率:0%
帮助的人:100万
展开全部
Dim matches As MatchCollection = rx.Matches("(.*)")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syzt33
2016-03-25
知道答主
回答量:57
采纳率:0%
帮助的人:6.3万
展开全部

DSK JGEwyIJE B32wpw39itw908nu9iewnu geiuxz329QU 9'

78y2

 ir u(g hiwWQ T#Q
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式