Regex: trova una stringa solo quando contiene caratteri alfabetici
Domanda
stringhe di esempio
785*()&!~`a
##$%$~2343
455frt&*&*
Voglio catturare il primo e il terzo ma non il secondo poiché non contiene alcun carattere alfabetico per favore
Soluzione
In effetti, penso che [a-zA-Z]
potrebbe essere sufficiente per abbinare le tue stringhe.
Per catturare tutto, prova: ^.*[a-zA-Z[.*$
Altri suggerimenti
Ecco un modo possibile:
.*[a-zA-Z]+
Forse dovresti chiarire un po 'cosa intendi per "catpuring": vuoi l'intera stringa di soli bit ASCII?
Inoltre, non devi dire se deve corrispondere al semplice alfabeto romano (dalla A alla Z) o se deve corrispondere anche ai caratteri Unicode per abbinare le stringhe in altre lingue.
Se hai solo bisogno di testare la tua stringa, in C # dovresti fare:
bool matching = Regex.IsMatch(myString, "[a-zA-Z]");
Non avresti bisogno di nient'altro, poiché solo una lettera in qualsiasi punto della stringa myString
corrisponderà (secondo la tua definizione).
Questo è il mio sito di test RegEx preferito: Javascript Regexp Tester e Cheat Sheet
Se si desidera abbinare tutte le lettere (comprese quelle non ascii), utilizzare p {L}
anziché [a-zA-Z]
. Vedi Categorie Unicode .