当前位置:编程学习 > VB >>

高手请教一个正则表达式的问题

滚滚长江东逝水,浪花淘尽(英雄)。是非成败转头空。(青山)依旧在,几度夕阳
红。 白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢。(古今)多少事,都付
笑谈中。

我如何用一个pattern来匹配()中的词?

谢谢!!! --------------------编程问答-------------------- 英雄 青山  古今

就这三个词??  特殊记忆一下
if  str= "英雄" or str="青山 " or str="古今" --------------------编程问答-------------------- pattern: "*英雄*青山*古今*" --------------------编程问答-------------------- 应该是找 "(", ")" 的配对吧 --------------------编程问答-------------------- \(\w+\) --------------------编程问答-------------------- \(\w+\) --------------------编程问答-------------------- vbman2003 :不对呀,无匹配结果!

tianhuo_soft,sunday410 :抱歉,我这只是个例子,实际上要几千个在()里的词。

高手帮帮忙,谢谢!!! --------------------编程问答-------------------- 我在MS下载的RegexTester中测试是正常的,可VB中试了下没通过,有空时要研究下
VB中这样可以,只是不知道符合不符合你所有情况:


'引用 Microsoft VBScript Regular Expressions

Function TestRegExp(s As String, p As String) As String
   
   Dim oRegExp As RegExp
   Dim oMatch As Match
   Dim colMatches As MatchCollection
   Dim RetStr As String

   Set oRegExp = New RegExp

   oRegExp.Pattern = p
   oRegExp.IgnoreCase = True
   oRegExp.Global = True

   If oRegExp.Test(s) Then
        Set colMatches = oRegExp.Execute(s)
        For Each oMatch In colMatches
            RetStr = RetStr & oMatch.Value & vbCrLf
        Next
    Else
        RetStr = "String Matching Failed"
    End If
    TestRegExp = RetStr
End Function

Private Sub Command1_Click()
    Dim s As String
    Dim p As String
    
    s = "滚滚长江东逝水,浪花淘尽(英雄)。" _
        & "是非成败转头空。(青山)依旧在,几度夕阳红。" _
        & "白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢。" _
        & "(古今)多少事,都付笑谈中?"
    s = StrConv(s, vbNarrow)
    p = "\(\S{2}\)"
    Debug.Print TestRegExp(s, p)
End Sub


补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,