2016-08-31 6 views
-3

Ich versuche, jedes nicht-alphanumerische Zeichen mit einem Unicode-bewußten Regex-Muster abzugleichen und zu versuchen, [\u00D8-\u00F6] und [^\w'’-] zusammen zu kombinieren. Umsonst.Übereinstimmende nicht-alphanumerische Zeichen außer Diakritika in EmEditor

Ich habe dies: right ស្ដាំ sdam. Und wenn ich schreibe [^\w'’-] in Suchen und ersetzen Dialog, es entspricht nicht-alphanumerischen und Teil der nicht-englischen Zeichen (ាំ und ). Ich möchte diese diakritischen Zeichen nicht erhalten.

Wenn ich schreibe [\u00D8-\u00F6], wird es nicht englische Zeichen übereinstimmen, aber es wird passen einige nicht-englische Zeichen entsprechen und diese dekoriert Wörter wie ាំ und .

+0

Ich habe meine Frage geändert. Was denkst du darüber? – user6779864

+0

Was genau soll "zusammen" bedeuten? '[^ \ u00D8- \ u00F6] [^ \ w '' -]'? '[^ \ u00D8- \ u00F6] | [^ \ w '' -]'? '[^ \ u00D8- \ u00F6] (? <= [^ \ w '' -])'? –

+0

@Rawing Ich wollte diese beiden kombinieren und nur nicht alphanumerisch übereinstimmen. Verstehst du? – user6779864

Antwort

0

Sie können nicht auf die Standard-Boost.Regex-Engine verlassen, es scheint in EmEditor schlecht implementiert.

Zum Erweiterte und Regular Expression Engine ändern zu Onigmo.

enter image description here

Dann nutzen [^\p{L}\p{M}\p{N}] (oder [^\p{L}\p{M}\p{N}'’-]+ sie in einem Rutsch entsprechen und auch ', und - ausschließen Anpassung, die Teile von Wörtern sein kann) oder eine beliebige andere der regexps Sie verwendet - die Unicode-Kategorie Klassen wird anfangen zu arbeiten.

enter image description here

Beachten Sie, dass \w nicht bewusst Unicode ist, so dass Sie verwenden müssen \p{L}\p{M}\p{N}:

  • \p{L} - jedes Unicode-Brief von der BMP-Ebene
  • \p{M} - alle diakritischen
  • \p{N} - jede Unicode-Ziffer

und mehr können in der UnicodeProps.txt Datei gefunden werden.

Verwandte Themen