2016-07-21 21 views
1

Kann ich etwas zu einer Zeichenklasse hinzufügen?fügen Sie der Zeichenklasse alnum ein spezielles Symbol hinzu

wie wir wissen,

   [:alnum:] 

alle numerischen Zeichen alpha enthält !!

Also ich möchte ein spezielles Symbol (.) Punkt der Klasse hinzufügen !! Wie können wir das machen? diese

Ich habe versucht,

 class='\.*[:alnum:]' 
     newclass="[$class]" 

eine Klasse alnum zu speichern und in einen variablen String NewClass Punkt und danach mit $ NewClass in awk aber kein Glück

Antwort

2

können Sie jedes beliebige Zeichen enthalten wie:

[.[:alnum:]] 

diese Prüfung in einem BASH regex:

[[ 'abc.123' =~ ^[.[:alnum:]]+$ ]] && echo "ok" || echo "no" 
ok 

[[ 'abc.123' =~ ^[[:alnum:]]+$ ]] && echo "ok" || echo "no" 
no 
+0

und wie kann ich negieren [. [: Alnum:]] – slash

+0

awk 'length() <3 || Länge()> 15 || /^[.[:alnum:]]+$/ 'temp.csv – slash

+0

Für die Negation kannst du folgendes verwenden: '[^. [: alnum:]]' Ich kann deinen awk-Befehl auch nicht testen, da du keine Beispieldaten angegeben hast von 'temp.csv' – anubhava

2

Can i add something to a character class ? - Nein, das geht nicht.

Having said that, Charakterklassen (zB [:alnum:]) werden oft innerhalb Klammerausdrücke verwendet (zB [[:alnum:]]) und Sie können haben mehrere Charakterklassen und/oder Zeichenlisten und/oder Zeichenbereiche innerhalb eines Klammerausdrucks, zum Beispiel:

[[:alnum:].] 

oder:

[[:alnum:][:space:][:cntrl:]#-&@] 

Wenn regexps mit, es ist sehr wichtig, die Terminologie und die Unterschiede zwischen zu verstehen:

bracket expressions 
character classes 
character lists 
character ranges 
+0

Sie können auch betonen, dass sich die Terminologie auf POSIX regex bezieht. –

+0

Ich bin nicht vertraut mit verschiedenen Terminologie für Nicht-POSIX-Regex - könnten Sie das näher erläutern? –

+0

Es gibt eine Art von terminologischen Konflikt mit [regulär-expressions.info] (http://www.regular-expressions.info/posixbrackets.html#class), wo eine * Zeichenklasse * (in NFA regexps) = * Klammerausdruck * (in POSIX regexps). –