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