Bisakah Anda melakukan Ekspresi Reguler di Excel tanpa VBScript?


22

Saya mencari fungsi Excel yang bisa saya masukkan ke dalam sel untuk melakukan pencarian regex dari isi sel lain. Apakah ada yang tersedia untuk melakukan ini? Saya lebih suka tidak harus menambahkan VB Script ke spreadsheet untuk ini karena saya bisa membuat hard-code solusi lebih cepat. Hanya saja solusi tercepat adalah fungsi. Saya tidak dapat menemukannya. Jadi mungkin tidak ada apa-apa.

Adakah yang tahu

Jawaban:


12

Anda bisa menambahkan referensi ke 'Microsoft VBScript Regular Expressions 5.5' di VBE untuk mengekspos fungsi regex VBScript.dll ke Excel. Menulis fungsi regex sederhana kemudian sepele, misalnya

Public Function emailCheck(rawEmail As String) As Boolean
    Dim reg As New RegExp
    reg.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,4}$"
    emailCheck = False
    If reg.Test(rawEmail) Then
        emailCheck = True
    End If
End Function

Bisakah Anda menjelaskan bagaimana Anda menambahkan referensi?
Chris Walsh


3

MoreFunc.xll adalah addin gratis yang memiliki fungsionalitas Regex.

Ada beberapa addins pihak ketiga lainnya yang dapat melakukan Regex juga.

Tidak ada fungsi lembar kerja asli yang sebenarnya untuk melakukannya, tetapi jika Anda memiliki pencarian spesifik untuk dilakukan, Anda mungkin dapat menggunakan fungsi lain untuk menyelesaikan pekerjaan.


Terima kasih atas konfirmasinya. Saya menemukan perpustakaan itu, tetapi kami berharap memiliki sesuatu yang tidak mengharuskan kami untuk mendistribusikan perpustakaan juga.
Erick Robertson

@Erick, ya, saya benci menambahkan addins ke spreadsheet saya, sakit besar untuk melacaknya. Kecuali Anda membutuhkan fleksibilitas regex yang lengkap, Anda mungkin bisa menyelesaikan pekerjaan dengan fungsi lain. Ada banyak trik di Excel. Kirim permintaan khusus di sini.
Lance Roberts

2

Berikut adalah fungsi yang memberikan jumlah kecocokan ekspresi reguler dalam sel tertentu:

Public Function regexCount(regex As String, ref As Range) As Integer
    Dim reg As New RegExp
    reg.Global = True
    reg.Pattern = regex
    regexCount = reg.Execute(ref.Value).Count
End Function

(Perlu menambahkan referensi ke 'Microsoft VBScript Regular Expressions 5.5' - cukup buka 'Tools' -> 'Referensi' dari editor VBA dan centang kotak centang untuk referensi itu.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.