Negieren Sie Zeichen in Regulärer Ausdruck
Wie würde ich es schreiben Sie einen regulären Ausdruck entspricht folgenden Kriterien?
- Keine zahlen
- Keine Sonderzeichen
- Keine Leerzeichen
in einem string
InformationsquelleAutor der Frage nimi | 2009-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Caret innerhalb einer Zeichenklasse, [ ^ ], ist der negationsoperator in den meisten Implementierungen von regulären Ausdrücken (Perl, .NET, Ruby, Javascript, etc). Also ich würde es so machen:
Oder Sie können einen anderen Ansatz, indem Sie auch einfach nur, was Sie wollen:
Der wesentliche Unterschied ist hier, dass der erste Unterstriche enthalten. ,, Und es zeigt eine Art des Schreibens, der Ausdruck in den gleichen Bedingungen, die Sie denken. Aber wenn Sie umkehren, denken Sie an Zeichen einschließen statt ausschließen, dann kann es vorkommen, dass in einem leichter lesbaren regulären Ausdruck.
Es ist nicht völlig klar mir die Sonderzeichen, die Sie nicht wollen. Aber ich schrieb beide Lösungen nur für den Fall, man arbeitet besser für Sie als die andere.
InformationsquelleAutor der Antwort Steve Wortham
In Perl, es wäre so etwas wie:
Natürlich kommt es auf Eure definition von "Sonderzeichen".
\W
Spiele alle nicht-Wort-Zeichen. Ein Wort-Zeichen sind alle alphanumerischen Zeichen plus dem Leerzeichen.InformationsquelleAutor der Antwort Thomas Owens
Die wichtigste Sache zu lernen, zu regulären Ausdrücken ist nicht die syntax, sondern die Fähigkeit, klar zu erklären, was Sie suchen. Das ist wirklich zu 90% das problem.
Auch ist es meist besser, zu sagen, was Sie wollen, anstatt was Sie nicht wollen.
InformationsquelleAutor der Antwort Matteo Riva
Versuchen ^[^0-9\p{P} ]$
InformationsquelleAutor der Antwort Paul McLean
InformationsquelleAutor der Antwort lei