Puoi fare espressioni regolari in Excel senza VBScript?

Sto cercando una function Excel che posso mettere in una cella per eseguire una ricerca regex del contenuto di un'altra cella. C'è qualche cosa per farlo? Preferirei non wherer aggiungere VB Script al foglio di calcolo per questo perché posso hard-code una soluzione più veloce. È solo che la soluzione più veloce sarebbe una function. Non lo trovo però. Quindi forse non c'è niente.

Qualcuno sa?

È ansible aggiungere semplicemente un riferimento a 'Microsoft VBScript Regular Expressions 5.5' nel VBE per esporre le funzioni di regex di VBScript.dll a Excel. La scrittura di una semplice function di regex è quindi banale, ad esempio

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 

Il pacchetto xx in questo sito ha funzionato molto bene per me.

MoreFunc.xll è un addin gratuito che ha funzionalità Regex.

Ci sono altre addine di terze parti che possono anche fare Regex.

Non ci sono vere funzioni di foglio di lavoro nativo per farlo, ma se avete una ricerca specifica per probabilmente utilizzate altre funzioni per get il lavoro svolto.

Ecco una function che fornisce il numero di corrispondenze regolari di espressioni all'interno di una particolare cella:

 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 

(Richiede l'aggiunta di un riferimento a 'Microsoft VBScript Regular Expressions 5.5' – basta andare in 'Strumenti' -> 'Riferimenti' dall'editor VBA e select la casella di controllo per quel riferimento.)