vs2010 VB 匹配括号内容但不包含括号
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 17:24:06
vs2010 VB 匹配括号内容但不包含括号
比方"新方案(3)6",只取3,
比方"新方案(3)6",只取3,
下面程序已经过调试,可正常使用
str1 = "新方案(gfgfgfg3)6"
str2 = ""
plag = 0 '未遇到左括号
For i = 1 To Len(str1) ;扫描整个串
If Mid(str1, i, 1) = "(" Then '左括号,标记遇到
plag = 1
ElseIf Mid(str1, i, 1) = ")" Then ‘右括号,字符串截取完成
plag = 0: Exit For
ElseIf plag = 1 Then ’()中间其它字符,截取入str2串中
str2 = str2 + Mid(str1, i, 1)
End If
Next i
若满意请及时采纳,谢谢
再问: 我想用正则表达式 regex
因为我整个程序大部分都是在匹配,正则表达式好用些
再答: Private Sub Command1_Click()
Print regEx("12大(dAdd)在3456", "\((.*?)\)")
End Sub
Function regEx(a, b) As String
With CreateObject("VBSCRIPT.REGEXP")
.Pattern = b
.Global = True
regEx = Replace(.Replace(a, "*"), "*", "a")
End With
End Function
这个我能匹配到括号里的内容并替换成a,就是不知道怎么保留下来
str1 = "新方案(gfgfgfg3)6"
str2 = ""
plag = 0 '未遇到左括号
For i = 1 To Len(str1) ;扫描整个串
If Mid(str1, i, 1) = "(" Then '左括号,标记遇到
plag = 1
ElseIf Mid(str1, i, 1) = ")" Then ‘右括号,字符串截取完成
plag = 0: Exit For
ElseIf plag = 1 Then ’()中间其它字符,截取入str2串中
str2 = str2 + Mid(str1, i, 1)
End If
Next i
若满意请及时采纳,谢谢
再问: 我想用正则表达式 regex
因为我整个程序大部分都是在匹配,正则表达式好用些
再答: Private Sub Command1_Click()
Print regEx("12大(dAdd)在3456", "\((.*?)\)")
End Sub
Function regEx(a, b) As String
With CreateObject("VBSCRIPT.REGEXP")
.Pattern = b
.Global = True
regEx = Replace(.Replace(a, "*"), "*", "a")
End With
End Function
这个我能匹配到括号里的内容并替换成a,就是不知道怎么保留下来