2016-03-26 7 views
0

Ich würde gerne wissen, ob es ein empfehlenswertes RegEx-Muster gibt, um sowohl englische als auch nicht-englische Zeichen zu finden. Bisher habe ich [^\x00-\x7F]+|[a-zA-Z'-]* basierend auf der answer provided at SO entwickelt. Meine Lösungen scheinen zu funktionieren, aber da ich sehr nett zu RegEx bin, möchte ich Sie bitten, dieses Token zu überprüfen und einige Verbesserungen vorzuschlagen. Ich kenne die meisten Lösungen, die dieses Thema berühren, wie this, aber ich denke nicht, dass es bereits eine gute RegEx dafür gibt.RegEx: Eine Möglichkeit, mit englischen und nicht-englischen Zeichen umzugehen (und meine Lösung)

Antwort

0

Die Antwort hängt hauptsächlich von der Sprache ab. Aber im Allgemeinen müssen Sie das "Unicode-Flag" aktivieren (dies geschieht normalerweise durch Voranstellen von (?u) an Ihre Regex oder durch Anhängen von /u) und Unicode-Strings verwenden. Auf diese Weise stimmen \w, \s und andere korrekt mit den entsprechenden Unicode-Zeichen überein.

Ein Beispiel in Python 2 (Python 3 verwendet Unicode-Standard): Für

>>> re.match('\w', 'è') # byte string, no unicode flag: no match 
>>> re.match('(?u)\w', u'è') # unicode string and unicode flag: match 
<_sre.SRE_Match object at 0x7f258bac07e8> 
>>> re.match('\w', u'è', re.UNICODE) # another way to enable the unicode flag 
<_sre.SRE_Match object at 0x7f258bac0850> 
+0

Wie benutzt man es in regex101.com und in AutoHotKey? – menteith

+0

@menteith: Ich bin nicht vertraut mit Regex101 und ich weiß nicht, was AutoHotKey ist, tut mir leid! Versuchen Sie, "AutoHotKey Unicode Regex" zu googlen und aktualisieren Sie Ihre Frage nebenbei das Tag [tag: autohotkey] und geben Sie ausdrücklich an, dass Ihre Frage sich auf AutoHotKey bezieht (andernfalls könnte Ihre Frage als off-topic geschlossen werden) –