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 № 1Dovresti 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
.