abbinare un'espressione regolare in php

Voglio {{User:JYBot/count|700,000}} in php che corrisponda a dichiarazioni come: {{User:JYBot/count|700,000}}

commnet: solo il numero 700.000 è variabile e altri sono fissi.

Ho scritto questo: '/\{\{User:JYBot/count\|\d{1,10}\}\}/' ma non funziona correttamente, a causa dell'esistenza di / in esso. Anche l'espressione regolare non funziona correttamente: '/\{\{User:JYBot\/count\|\d{1,10}\}\}/'

Per favore aiutami a riguardo. Saluti

Qualche piccolo how-to. Prendi la tua corda:

 {{User:JYBot/count|700,000}} 

Racchiudere le parti che dovrebbero essere allineate alla lettera in \Q...\E :

 \Q{{User:JYBot/count|\E ... \Q}}\E 

Ora sostituisci la parte dynamic 700,000 con il suo model, ad esempio [\d,]{1,10} :

 \Q{{User:JYBot/count|\E[\d,]{1,10}\Q}}\E 

Aggiungi i delimitatori (ce ne sono più di / , prendi uno non parte della string fino ad ora o qualcosa con parentesi come () / {} o [] ) e hai finito:

 ~\Q{{User:JYBot/count|\E[\d,]{1,10}\Q}}\E~ 

Prova quanto segue:

  /\{{2}User:JYBot\/count\|([0-9\,]+)\}{2}/is 

Tuttavia, otterrai la virgola nel numero, quindi dovrai spostarlo di nuovo.

Questo dovrebbe funzionare, assumendo che il numero sia diviso in virgole:

 /\{\{User:JYBot\/count\|\d{1,3}(?:,\d{3})*\}\}/ 

O devi sfuggire alle tue barre o usare delimitatori diversi:

sfuggire alle barre:

 '/\{\{User:JYBot\/count\|\d{1,10}\}\}/' 

diversi delimitatori:

 '~\{\{User:JYBot/count\|\d{1,10}\}\}~' 

È necessario sfuggire al / dal parser di espressioni regolari, il che significa che il parser deve vedere un \ before it. Tuttavia, l'espressione di string PHP "\/" sta per essere valutata come "/" – si sfugge la barra in avanti dal parser letterale string di PHP, e quindi il carattere \ non finisce per essere parte della string finale.

Per get un \ reale nella string, utilizzare due di essi:

 '/\{\{User:JYBot\\/count\|\d{1,10}\}\}/' 

Il parser delle espressioni regolari vedrà quindi la \/ sequenza che intendi.