Anzeige

Frage zu Suchmuster (RegEx)

Frage zu Suchmuster (RegEx) | PSD-Tutorials.de

Erstellt von netbandit, 12.01.2012.

  1. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Frage zu Suchmuster (RegEx)
    Hallo,

    ich habe bei der Suche nach "Wie Wordspezifische Zeichen entfernen" folgendes Suchmuster gefunden ...

    PHP:
    1.  
    2. $suchmuster='/([\xe0-\xef]..)/x';
    3.  
    ... und würde jetzt gerne Wissen welche Zeichen da alle entfernt werden?!

    Also erste Tests haben gezeigt dass es funktioniert - Zeichen, die selbst UTF8 nicht richtig darstellen, werden gelöscht - aaaaber: Das Euro-Zeichen ist dann z.B. auch weg. :kopfpatsch:

    Eh da noch mehr brauchbare Zeichen entfernt werden; bekommt man das irgendwie angezeigt? Schleife oder so?

    Grüße :)
     
    #1      
  2. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Frage zu Suchmuster (RegEx)
    AW: Frage zu Suchmuster (RegEx)

    http://www.php.net/manual/en/regexp.reference.escape.php sagt:
    Also: \xe0 = hexadezimaler Code für e0 in ANSI-Tabelle = à bis \xef = hexadezimaler Code für ï - siehe Tabelle für die Zeichen dazwischen.

    Warum dabei das €-Zeichen entfernt wird, weiß ich aber gerade noch nicht. Entweder passiert das in einem anderen Code-Stück oder ich übersehe gerade etwas.


    Duddle
     
    #2      
  3. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Frage zu Suchmuster (RegEx)
    AW: Frage zu Suchmuster (RegEx)

    Hallo Duddle,

    also das es sich hierbei um hexcode handelt ist mir schon klar. Allerdings, so scheint es mir, werden nicht nur die Bereich zwischen e0 (224) und ef (239) entfernt, sondern ein paar mehr. Liegt bestimmt an den zwei Punkten (2 beliebige Zeichen) im Suchmuster?! :uhm:



    Irgendwie komme ich da gar nicht klar - würde mich auch nicht wundern wenn das Euro-Zeichen auch wieder zusätzlich bei Word in den Sonderzeichen zu finden ist.

    In meinem Beispiel wurde eine Pipe ( | ) von Word, die nicht in UTF-8 darstellbar ist, gelöscht - manuell eingegeben jedoch nicht (wird ja auch richtig angezeigt).

    Anm.: Bei den Worddocumenten selbst kann ich leider nicht vorbeugen und MSSüppchen vermeiden, die Dateien bekomme ich per Mail.

    Grüße :)

    €: Hier mal ein Bildchen, vielleicht wird es dann ein wenig klarer wo mein Problem ist - Die ersten beiden Pipes sind von Word, das Letztere habe ich per Tastatur eingegeben:
    [​IMG]

    Wobei hier noch ein weiteres Problemchen ist, aus 4 Punkten werden dann auch noch nur einer. Die Punkte habe ich selber eingegeben ->, da fasst Word wohl drei zusammen und macht auch wieder so ein Sonderding :schmoll:
     
    Zuletzt bearbeitet: 12.01.2012
    #3      
  4. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Frage zu Suchmuster (RegEx)
    AW: Frage zu Suchmuster (RegEx)

    Naja, das RegEx sucht ja spezifisch Zeichen aus dem genannten Bereich gefolgt von 2 beliebigen Zeichen. Diese Zeichen sind - soweit ich weiß - eindeutig unterscheidbar, sie "fließen" also nicht "ineinander über" o.ä. Wenn also irgendwelche zwei (Euro-, Pipe-, FooBar-) Zeichen nach einem Zeichen aus dem Bereich kommen, schlägt das Suchmuster an.

    Da ich aber nicht weiß, wie das Word-Dokument da tatsächlich reingesteckt wird, ist das von meiner Seite aus schwer zu beurteilen :)

    Vielleicht hilft es dir, wenn du statt einem preg_replace ein preg_match_all mit dem gleichen Suchmuster machst und dir die Suchergebnisse anschaust. Dann siehst du eindeutig, welche Stellen gefunden - und in deinem Fall entfernt - werden.


    Duddle
     
    #4      
  5. netbandit

    netbandit Aktives Mitglied

    12
    Dabei seit:
    18.05.2008
    Beiträge:
    1.145
    Geschlecht:
    männlich
    Frage zu Suchmuster (RegEx)
    AW: Frage zu Suchmuster (RegEx)

    Stimmt, mit preg_match_all könnte ich mir die anzeigen lassen, die im aktuellen Dokument ersetzt werden. Allerdings weiß ich nicht welche Zeichen künftig bei weiteren Dokumenten zusätzlich entfernt werden. Deswegen würde ich mir gerne den kompletten Bereich aus dem Suchmuster von/bis vorher anzeigen lassen.

    Grüße & Danke :)

    P.S. habe mal ein Bildchen im obigen Beitrag eingefügt.
     
    #5      
x
×
×