7 Stimmen

Auswahl nur der alphanumerischen Wörter mit regex

Ich versuche, einen regulären Ausdruck zu finden, der nur die alphanumerischen Wörter in einer Zeichenkette findet, d. h. die Wörter, die eine Kombination aus Buchstaben oder Zahlen sind. Wenn ein Wort nur aus Zahlen oder Zeichen besteht, muss ich es verwerfen.

7voto

Gumbo Punkte 617646

Versuchen Sie diesen regulären Ausdruck:

\b([a-z]+[0-9]+[a-z0-9]*|[0-9]+[a-z]+[a-z0-9]*)\b

Oder noch kompakter:

\b([a-z]+[0-9]+|[0-9]+[a-z]+)[a-z0-9]*\b

Dies entspricht allen Wörtern (beachten Sie die Wortgrenzen \b ), die entweder mit einem oder mehreren Buchstaben beginnen, gefolgt von einer oder mehreren Ziffern oder umgekehrt, auf die ein oder mehrere Buchstaben oder Ziffern folgen können. Die Bedingung von mindestens einem Buchstaben und mindestens einer Ziffer ist also immer erfüllt.

4voto

Mark Byers Punkte 761508

Mit Vorschaubildern:

'/\b(?![0-9]+\b)(?![a-z]+\b)[0-9a-z]+\b/i'

Ein Schnelltest, der auch ein Anwendungsbeispiel enthält:

$str = 'foo bar F0O 8ar';
$arr = array();
preg_match_all('/\b(?![0-9]+\b)(?![a-z]+\b)[0-9a-z]+\b/i', $str, $arr);
print_r($arr);

Ausgabe:

F0O
8ar

0voto

Alix Axel Punkte 146320
\b(?:[a-z]+[0-9]+|[0-9]+[a-z]+)[[:alnum:]]*\b

0voto

Mahi Punkte 424

' \b ([a-zA-Z]+[0-9]+ | [0-9]+[a-zA-Z]+ | [a-zA-Z]+[0-9]+[a-zA-Z]*) \b '

-1voto

Matchu Punkte 80505

Dies gibt alle einzelnen alphanumerischen Wörter zurück, die Sie in einer Schleife durchgehen können. Ich glaube nicht, dass regex die ganze Aufgabe allein erledigen kann.

\b[a-z0-9]+\b

Achten Sie darauf, dass Sie die Groß- und Kleinschreibung nicht beachten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X