Come si comunica a RegEx (versione .NET) la corrispondenza più piccola valida al posto della più grande?RegEx: la più piccola corrispondenza possibile o non paragonabile
risposta
per un'espressione regolare come .*
o .+
, aggiungere un punto interrogativo (.*?
o .+?
) per abbinare il minor numero di caratteri possibile. Per abbinare facoltativamente una sezione (?:blah)?
ma senza corrispondere se non strettamente necessario, utilizzare qualcosa come (?:blah){0,1}?
. Per una corrispondenza ripetuta (utilizzando la sintassi {n,}
o {n,m}
), aggiungere un punto interrogativo per provare ad abbinare il minor numero possibile (ad esempio {3,}?
o {5,7}?
).
Anche la documentazione su regular expression quantifiers può essere utile.
L'operatore non avido, ?
. In questo modo:
.*?
L'operatore non avido non significa che la corrispondenza più breve possibile:
abcabk
a.+?k
corrisponderà l'intera stringa (in questo esempio) anziché solo gli ultimi tre segni.
Mi piacerebbe davvero trovare la corrispondenza più piccola possibile.
Questa è l'ultima corrispondenza possibile per "a
" per consentire comunque tutte le partite per k
.
Credo che l'unico modo per farlo è quello di fare uso di un'espressione come:
a[^a]+?k
Oppure cerca in ordine inverso, iniziando alla fine, quando le partite sono annidate: "(ab (abk) bk)". – LBogaardt
@LBogaardt come si effettua una ricerca in ordine inverso? non capisco – azerafati
@LBogaardt Ancora una domanda aperta: come si può effettuare una ricerca in ordine inverso? Diciamo che voglio prendere "taxi". Se il mio input è 'caaacab' e cerco' a. *? B', restituirà la stringa completa al posto della short match all'interno. Come faccio a cercare all'indietro dal 'b'? – C4u
- 1. Corrispondenza modello Java Regex - Operatore "uno o più"
- 2. Windows Azure È possibile eseguire più siti Web sulla stessa piccola istanza o piccola istanza
- 3. Regular Expression più lunga possibile corrispondenza
- 4. Contenuto a tutta altezza con la larghezza più piccola possibile
- 5. Come rimuovere la JVM per ottenere l'installazione più piccola possibile?
- 6. Bash regex corrispondenza non funziona
- 7. Regex per la corrispondenza in avanti più barre in URL
- 8. .NET Regex supporta la corrispondenza globale?
- 9. corrispondenza regex Javascript * non * inizio riga
- 10. Corrispondenza modello elegante Regex
- 11. Javascript RegEx corrispondenza parziale
- 12. vba regex restituisce solo la prima corrispondenza
- 13. Corrispondenza regex non avida, JavaScript e ASP
- 14. Python RegEx corrispondenza Newline
- 15. Restituisce la prima corrispondenza di Ruby regex
- 16. Regex per la corrispondenza di frammenti javadoc
- 17. Corrispondenza RegEx tra caratteri
- 18. Corrispondenza stringa Regex?
- 19. Regex ungreedy dal lato sinistro (vale a dire, più stretta corrispondenza possibile da entrambi i lati)
- 20. Regex in python: è possibile ottenere la corrispondenza, la sostituzione e la stringa finale?
- 21. La più piccola differenza tra 2 angoli
- 22. RegEx - corrispondenza spazio bianco avido
- 23. Corrispondenza singola parola, con possibile punteggiatura o pluralizzazione alla fine (Regex)
- 24. Corrispondenza su sottostringhe ripetute in regex
- 25. Corrispondenza '_' e '-' in java regex
- 26. Partizione FAT32 più piccola
- 27. come testare una corrispondenza regex
- 28. Corrispondenza regex tra due stringhe?
- 29. Regex, numero o vuoto
- 30. RegEx - Numeri di corrispondenza della lunghezza variabile
Non so, se io sono l'unico ad avere questo malinteso, ma è importante notare: Mentre è vero che l'operatore non avido corrisponderà al minor numero di caratteri possibile, potrebbe non essere la partita che si sta cercando. "Il minor numero di caratteri possibile" non è uguale alla "corrispondenza più breve possibile" rispetto agli standard RegEx. Vedere la risposta sotto il mio commento: Con 'abcabk' e' a. +? K', RegEx corrisponderà all'intera stringa. – Jayjayyy