/ / espressione regolare matlab - regex, matlab

espressione regolare matlab - regex, matlab

Nella seguente stringa: quantity = 100; Mi piacerebbe usare una regex per ottenere 100.

Perché non ritorna il seguente regex 100??

regexp("quantity=100;","(?=w*s*=s*)[^]+(?=s*;$)","match","once")

risposte:

2 per risposta № 1

Dovresti usare una espressione regolare negativa prima di iniziare, prova questo:

regexp("quantity=100;","(?<=w*s*=s*)[^]+(?=s*;$)","match","once")

o

regexp( "quantity=100;", "(?<=^.*=s*)(.*)(?=s*;$)", "match", "once" ) che è molto più semplice


7 per risposta № 2

Il regex per abbinare qualsiasi cifra è d. Quindi se le tue corde sono solo della forma text=numbers, quindi funzionerà il seguente.

digits = regexp( "quantity=100;", "d", "match");
result = [digits{:}]

result =
"100"

Nota che MATLAB restituisce un array di celle di corrispondenze. Quindi non puoi usare "once" perché restituirà solo 1.