MIDRANGE 02/2018

41 02/2018 · MIDRANGE MAGAZIN CLICK TO www.midrange.de Der vollständige Artikel steht Abonnenten des TechKnowLetters online zur Verfügung. Mit Hilfe des Prädikats REG- EXP_LIKE und den skalaren REGEXP- Funktionen können beliebige Texte sowohl im Single Byte Character Set als auch im Double Byte Character Set gescannt werden. Sofern der Text oder der reguläre Ausdruck nicht als UTF- 16 DBCLOB (Double Byte Large Object) angegeben wurde, erfolgt automatisch eine implizite Konvertierung in dieses Format. Die komplexen Suchmuster, also die regulären Ausdrücke, müssen bei den neuen Funktionen und Prädikaten angegeben werden. Die Syntax für die regulären Ausdrücke unterliegt einem komplexen Regelwerk. Reguläre Ausdrücke – Syntax Zur Definition von regulären Ausdrü- cken werden Buchstaben und Zahlen sowie eine Reihe von Sonderzeichen (Metazeichen) verwendet. Mit Hilfe dieser Metazeichen sowie deren An- ordnung und Kombination mit anderen Zeichen werden komplexe Suchraster erstellt, die als Parameter in den ska- laren Funktionen und Prädikaten ange- geben werden können. Bei der einfachsten Version der regulären Ausdrücke können die Zei- chen, nach denen ein Text gefiltert werden soll, nacheinander aufgelistet werden. Wird der reguläre Ausdruck 'ABC' verwendet, wird ein Text nach der Zeichenfolge ABC (in Großbuch- staben) durchsucht. Das Suchergeb- nis entspricht einer Suche mit Hilfe des SQL-Prädikats LIKE mit führen- dem und folgendem Prozentzeichen ( ➜ LIKE '%ABC%'). Die meisten Zeichen können di- rekt in einem regulären Ausdruck angegeben werden. Einige Sonder- zeichen (Metazeichen) haben jedoch eine besondere Bedeutung für die De- finition der Suchstruktur. Sofern nach diesen Zeichen in einem Text gesucht werden soll, müssen diese durch ei- nen vorangestellten Backslash mas- kiert werden. Die folgenden Metazeichen werden zur Definition der regulären Ausdrücke verwendet. ó \ Backslash: Maskierung von Sonder- zeichen mit besonderer Bedeutung ó . Punkt: Einzelnes beliebiges Zeichen ABC.EFG ABCDEFG ist ebenso gültig wie ABC?EFG oder XXABCXEFGH. ó * Stern: Beliebige Anzahl des vorher- gehenden Zeichens. Wird der Stern in Verbindung mit einem vorangestell- ten Punkt angegeben, bedeutet dies beliebig viele beliebige Zeichen. A*B* Sowohl AB als auch AABBBB A.*B.* als auch AvielTextBanderer- Text werden gefunden. ó ? Fragezeichen: Kein oder genau ein Vorkommen des vorangestellten Zei- chens an der entsprechenden Position 123?456 Sowohl 123456 als auch 12456 werden gefunden. ó + Pluszeichen: Der Text muss min- destens ein Vorkommen des vorher- gehenden Zeichens oder Elements enthalten. A+BCDE+ Sowohl ABCDE als auch ABCDEE als auch AAAABCDEEEE werden gefunden. ó [ ] Brackets / Eckige Klammern: Be- schreiben eine Zeichenklasse Die eckigen Klammern umschließen eine Liste oder einen Bereich von Zeichen (oder beides). Nur ein Text, der alle Zeichen enthält oder nur aus einem Teil der angegebenen Zeichen besteht, wird gefunden. Die Reihenfolge, in der die Zeichen angegeben wurden, spielt dabei keine Rolle. [AaBbCc] Texte, die nur aus den Buchstaben A, B, C in Groß- oder Kleinschreibung bestehen, werden gefunden. A ist ebenso gültig wie cC, bBcc oder AAABBBCCC. Anstatt die Zeichen einzeln aufzu- listen, ist es auch möglich, Bereiche anzugeben. Dabei werden der untere und der obere Wert durch ein Minus- zeichen getrennt in den eckigen Klam- mern angegeben, zum Beispiel [A-Z]. [0-9] Texte, die nur aus Ziffern beste- hen, werden gefunden. 0 und 9876 sind ebenso gültig wie 111111. Mehrere Bereiche können innerhalb der gleichen eckigen Klammer ange- geben werden. Wenn der String zum Beispiel nur aus Großbuchstaben von A bis F und aus Ziffern von 0 bis 9 bestehen darf, kann dies in der Form [[A-F][0-9]] angegeben werden. Die Angabe der inneren Klammern ist jedoch nicht zwingend erforderlich, das heißt, [A-F0-9] liefert das gleiche Ergebnis. ó { } Curly Brackets / Geschwungene Klammern: Innerhalb der geschwun- genen Klammern wird die zulässige Anzahl des Vorkommens des voran- gegangenen Zeichens oder Ausdrucks angegeben. {n} String muss genau n Vorkommen enthalten. [ABC]{3} findet AAA und CBC, jedoch nicht AA. {n,} String muss mindestens n Vor- kommen enthalten, darf jedoch so vie- le Vorkommen wie möglich enthalten. [A-C]{2,}[X-Z]{3,} findet AAAZZZ, AB- CABCXYZ und ABZZZZZZ, jedoch we- der AZZZ noch ABCABCXZ. {n,m} String muss mindestens n und darf höchstens m Vorkommen enthal- ten. [A-C]{2,3} findet ABZ, CC und CB- BXYZ, jedoch weder A noch BBBBX. [A-Z]{3}[1-3]{4} Der reguläre Aus- druck muss aus drei Buchstaben und vier Ziffern zwischen 1 und 3 zusam- mengesetzt sein (zum Beispiel AAA1111 oder ZXY1313). ó ( ) Parenthesis / Runde Klammern: Mit Hilfe von runden Klammern kön- nen längere Ausdrücke zu einer Ein- heit zusammengefasst werden. Birgitta Hauser ó

RkJQdWJsaXNoZXIy NDM3NDQ=