Come posso abbinare tutti i caratteri tra i 2 caratteri specificati, dicono " "
-> da sdfsf " 12asdf " sdf
regex trovare personaggi tra ""
voglio ottenere solo 12asdf
.
Come posso abbinare tutti i caratteri tra i 2 caratteri specificati, dicono " "
-> da sdfsf " 12asdf " sdf
regex trovare personaggi tra ""
voglio ottenere solo 12asdf
.
È possibile utilizzare il seguente modello per ottenere tutto tra " "
, tra cui la testa e di coda spazi bianchi:
"(.*?)"
o
"([^"]*)"
Se si desidera catturare tutto tra il "" escluso gli spazi bianchi iniziali e finali che puoi fare:
"\s*(.*?)\s*"
o
"\s*([^"]*)\s*"
concordato. Assicurati di cercare tutto ciò che puoi trovare sulle espressioni "non-golose" (contro "avide"). Dovrebbe essere una lettura interessante se ancora non lo sai. E sicuramente renderà più facile la tua vita con espressioni regolari se conosci la differenza. – exhuma
È possibile utilizzare preg_match(/"([^"]*)"/,$input,$matches);
. $matches[1]
avrà ciò che desideri.
vi suggerisco di utilizzare
(?<=")(?:\\.|[^"\\])*(?=")
Questo corrisponderà solo ciò che si trova tra le virgolette (non le virgolette stessi) e anche di gestire correttamente le virgolette escape all'interno della vostra stringa.
Quindi in "She said, \"Hi!\""
, corrisponderà a She said, \"Hi!\"
.
Se stai usando JavaScript o Ruby (che lei non ha citato) e quindi non possono usare lookbehind, utilizzare
"((?:\\.|[^"\\])*)"
e lavorare con il gruppo di cattura n. 1.
Che non ha gestito citazioni con escape per me o su questa pagina https://regex101.com/ – Don
@Don: Puoi fornire il link alla regex non funzionante (fai clic su Salva regex e pubblica il link)? –
[^"].*[^"]
Se si inserisce: "Elie", darà Elie (nota: senza virgolette)
Cosa speravate di ottenere? Non sta restituendo lo spazio bianco principale? Mostraci la regex che stai utilizzando e metti i risultati del tuo esempio in un blocco di codice, per favore. – Robusto