การใช้เรกุลาร์เอ็กเพรสชัน

Visual Basic for Applications:
การใช้เรกุลาร์เอ็กเพรสชัน

วิธีการ:

หากต้องการใช้ regular expressions ใน VBA โดยแรกเริ่มต้องเปิดใช้งาน Microsoft VBScript Regular Expressions library ใน VBA editor, ไปที่ Tools -> References, จากนั้นเลือก Microsoft VBScript Regular Expressions 5.5

นี่คือตัวอย่างพื้นฐานในการหาว่ามีรูปแบบที่กำหนดอยู่ในสตริงหรือไม่:

Sub FindPattern()
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")

    With regex
        .Global = True
        .IgnoreCase = True
        .Pattern = "\bis\b"  ' ค้นหาคำ "is"
    End With
    
    Dim testString As String
    testString = "This is a test string."
    
    If regex.Test(testString) Then
        MsgBox "พบรูปแบบ."
    Else
        MsgBox "ไม่พบรูปแบบ."
    End If
End Sub

ในการแทนที่รูปแบบในสตริง:

Sub ReplacePattern()
    Dim regex As Object, replacedString As String
    Set regex = CreateObject("VBScript.RegExp")
    
    With regex
        .Global = True
        .IgnoreCase = False
        .Pattern = "\s"  ' จับคู่กับอักขระว่างใด ๆ
    End With
    
    replacedString = regex.Replace("This is a test string.", "_")
    MsgBox replacedString  ' ผลลัพธ์: "This_is_a_test_string."
End Sub

ศึกษาเพิ่มเติม

การรวม regular expressions เข้ากับภาษาโปรแกรมมิ่งมักจะสืบเนื่องมาจากเครื่องมือ Unix ในยุค 1970 VBA ได้รวม regex ผ่าน VBScript Regular Expressions library, ซึ่งเน้นถึงความสำคัญในงานประมวลผลข้อความ แม้ในแอปพลิเคชันที่ไม่มีความเกี่ยวข้องโดยตรงกับการจัดการข้อความจำนวนมากเช่น Excel หรือ Access

แม้จะมีพลัง, regex ใน VBA บางครั้งอาจไม่ง่ายต่อการเรียนรู้หรือประสิทธิภาพไม่เท่ากับการใช้งานในภาษาที่ทันสมัย อย่างเช่น Python หรือ JavaScript เป็นต้น Python ด้วยโมดูล re นั้นให้การสนับสนุนอย่างกว้างขวางสำหรับกลุ่มที่มีชื่อและความสามารถในการจับคู่รูปแบบที่ซับซ้อนยิ่งขึ้น ให้วิธีที่สะอาดและอาจอ่านได้ง่ายกว่าแม้ว่าเมื่อทำงานภายในระบบนิเวศ VBA, regular expressions ยังคงเป็นเครื่องมือที่มีคุณค่าสำหรับงานที่ต้องการการจับคู่รูปแบบหรือการจัดการข้อความ การแลกเปลี่ยนประสิทธิภาพนั้นมักจะเป็นเรื่องที่สามารถละเลยได้เมื่อพิจารณาถึงความสะดวกและความสามารถที่ regex มอบเมื่อจัดการกับสตริงในแอปพลิเคชัน Office