KKeine Bearbeitungszusammenfassung |
|||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{ | {{Set_lang}} | ||
== Zusammensetzung == | {{#vardefine:headerIcon|spicon-utm}} | ||
{{:UTM/APP/Regex.lang}} | |||
'''.''' steht für ein beliebiges Zeichen | |||
'''[abc]''' matcht auf alle Buchstaben in den Klammern: a, b oder c | </div>{{Select_lang}}{{TOC2}} | ||
'''[^abc]''' matcht auf alle Buchstaben | |||
'''[a-z]''' matcht auf alle Buchstaben von: a bis z<br> | {{Header|11.8| | ||
'''[a-zA-Z]''' matcht auf alle Buchstaben von: a bis z oder A bis Z | * {{#var:3b|Artikelanpassung}} | ||
'''^''' | * {{#var:3c|Übersetzung}} | ||
'''$''' steht für das Ende einer Zeile | }} | ||
'''\s''' steht für ein Leerzeichen | ---- | ||
'''\''' hebt die Regex-Funktion des nächsten Zeichens auf und "sucht" somit nach dem folgenden Zeichen | |||
'''\r\n''' ist eine Return oder eine Linefeed (Windows neue Zeile) | === {{#var:Einleitung}} === | ||
'''*''' wiederholt das vorherige Zeichen beliebig oft - auch 0 Mal | <div class="Einrücken">{{#var:Einleitung--desc}}</div> | ||
'''+''' wiederholt das vorherige Zeichen beliebig oft - mindestens 1 Mal | |||
'''{1}''' steht für das vorherige Zeichen, 1 Mal | === {{#var:Zusammensetzung}} === | ||
'''{2,4}''' steht für das vorherige Zeichen, 2 bis 4 Mal nacheinander | <div class="Einrücken">{{#var:Zusammensetzung--desc}}</div> | ||
'''{3,}''' steht für das vorherige Zeichen, mindestens 3 Mal | |||
'''[^:]''' steht für alles außer einem Doppelpunkt | {| class="top pd5 Einrücken" | ||
|- | |||
| style="min-width: 70px;" | '''<code>.</code>''' || {{#var:8|steht für ein beliebiges Zeichen}} | |||
|- | |||
| '''<code>[abc]</code>''' || {{#var:9|matcht auf alle Buchstaben in den Klammern: '''a, b''' oder '''c'''}} | |||
|- | |||
| '''<code>[^abc]</code>''' || {{#var:10|matcht auf alle Buchstaben '''außer''': a, b oder c}} | |||
|- | |||
|'''<code>[a-z]</code>''' || {{#var:11|matcht auf alle Buchstaben von: a bis z}}<br> | |||
|- | |||
| '''<code>[a-zA-Z]</code>''' || {{#var:12|matcht auf alle Buchstaben von: a bis z oder A bis Z}} | |||
|- | |||
|'''<code>^</code>''' || {{#var:13|Steht für den Beginn einer Zeile}} | |||
|- | |||
| '''<code>$</code>'''|| {{#var:14|steht für das Ende einer Zeile}} | |||
|- | |||
| '''<code>\s</code>''' || {{#var:15|steht für ein Leerzeichen}} | |||
|- | |||
| '''<code>\</code>''' || {{#var:16|hebt die Regex-Funktion des nächsten Zeichens auf und "sucht" somit nach dem folgenden Zeichen}} | |||
|- | |||
| '''<code>\r\n</code>''' || {{#var:17|ist eine Return oder eine Linefeed (Windows neue Zeile)}} | |||
|- | |||
| '''<code>*</code>''' || {{#var:18|wiederholt das vorherige Zeichen beliebig oft - auch 0 Mal}} | |||
|- | |||
| '''<code>+</code>''' || {{#var:19|wiederholt das vorherige Zeichen beliebig oft - mindestens 1 Mal}} | |||
|- | |||
| '''<code>{1}</code>''' || {{#var:20|steht für das vorherige Zeichen, 1 Mal}} | |||
|- | |||
| '''<code>{2,4}</code>''' || {{#var:21|steht für das vorherige Zeichen, 2 bis 4 Mal nacheinander}} | |||
|- | |||
| '''<code>{3,}</code>''' || {{#var:22|steht für das vorherige Zeichen, mindestens 3 Mal}} | |||
|- | |||
| '''<code>[^:]</code>''' || {{#var:23|steht für alles außer einem Doppelpunkt}} | |||
|} | |||
<br> | <br> | ||
== Beispiele == | === {{#var:Beispiele}} === | ||
=== Beispiel 1 === | <div class="Einrücken"> | ||
==== {{#var:Beispiel 1}} ==== | |||
Der Regex für diesen Fall würde so aussehen:<br> | <div class="Einrücken">{{#var:Beispiel 1--desc}} | ||
* {{#var:27|Der Regex für diesen Fall würde so aussehen:}} <br>{{code| [1-9][a-f] }} | |||
Wird der Adresszusatz, also a-f groß geschrieben, würde dieser Regex nicht matchen. Damit groß geschriebene Buchstaben erfasst werden, müsste der Regex so aussehen:<br> | * {{#var:28|Wird der Adresszusatz, also a-f groß geschrieben, würde dieser Regex nicht matchen. Damit groß geschriebene Buchstaben erfasst werden, müsste der Regex so aussehen:}} <br>{{code| [1-9][A-F] }} | ||
* {{#var:29|Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:}} <br>{{code | [1-9][a-fA-F] |class=bold}} | |||
Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:<br> | </div> | ||
=== Beispiel 2 === | ==== {{#var:30|Beispiel 2}} ==== | ||
Im Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf '''point''' enden.<br> | <div class="Einrücken"> | ||
checkpoint<br> | * {{#var:31|Im Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf '''point''' enden.}}<br>{{#var:32|checkpoint}}<br>{{#var:33|mountpoint}}<br>{{#var:34|securepoint}} | ||
mountpoint<br> | * {{#var:35|Ein Regex der auf alle genannten Wörter matcht sieht so aussehen:}} <br>{{code | .*point }} | ||
securepoint | * {{#var:36|Praktisch würde auch folgendes vom Regex erfasst werden:}}<br>'''{{#var:37|das ist kein point}}''' | ||
Ein Regex der auf alle genannten Wörter matcht sieht so aussehen:<br> | * {{#var:38|Um das Verhalten zu unterbinden, müsste folgender Regex verwendet werden:}} <br>{{code | [a-zA-Z]*point |class=bold }} | ||
</div> | |||
Praktisch würde auch folgendes vom Regex erfasst werden:<br> | |||
'''das ist kein point''' | |||
Um das Verhalten zu unterbinden, müsste folgender Regex verwendet werden:<br> | |||
=== Beispiel 3 - URL-Regex === | ==== {{#var:39|Beispiel 3 - URL-Regex}} ==== | ||
Im URL-Beispiel soll auf www.securepoint.de gematcht werden.<br> | <div class="Einrücken"> | ||
Folgender Regex wäre korrekt:<br> | {{#var:40|Im URL-Beispiel soll auf www.securepoint.de gematcht werden.}}<br> | ||
* {{#var:41|Folgender Regex wäre korrekt:}} <br>{{code | \.securepoint\.de |class=bold}}<br>{{#var:42|Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash '''<code>\</code>''' die Regex-Funktion des folgenden Zeichens auf. So kann auch auf den Punkt gematcht werden. In einem solchen Fall wird vom "escapen" eines Zeichens gesprochen.}} | |||
Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash '''\''' die Regex-Funktion des folgenden | </div> | ||
</div> | |||
== Anwendungsbereiche von Regexen == | === {{#var:43|Anwendungsbereiche von Regexen}} === | ||
=== HTTP-Proxy: Virenscanner === | <div class="Einrücken"> | ||
Soll beispielsweise die URL '''<nowiki>http://download.windowsupdate.com</nowiki>''' in die Whitelist des Virenscanners aufgenommen werden, ist es sehr wichtig, dass letztendlich '''genau diese''' URL in die Whitelist aufgenommen wird.<br><br> | ==== {{#var:44|HTTP-Proxy: Virenscanner}} ==== | ||
<div class="Einrücken"> | |||
{{#var:45|Soll beispielsweise die URL '''<nowiki>http://download.windowsupdate.com</nowiki>''' in die Whitelist des Virenscanners aufgenommen werden, ist es sehr wichtig, dass letztendlich '''genau diese''' URL in die Whitelist aufgenommen wird.}}<br><br> | |||
* {{#var:46|Der passende Regex lautet also:}} <br>{{code|<nowiki>http://download\.windowsupdate\.com/</nowiki>}} | |||
Alternativ kann auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:<br> | * {{#var:47|Alternativ kann auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:}}<br>{{#var:48|Beispiel:}} {{code | <nowiki>^[^:]*://download\.windowsupdate\.com/</nowiki> }} | ||
<br> | <br> | ||
Eine Sammlung von verschiedenen Virenscanner-Regex-Ausdrücken sind in [[ | {{#var:49|Eine Sammlung von verschiedenen Virenscanner-Regex-Ausdrücken sind in [[UTM/APP/HTTP_Proxy-Virenscanner|diesem Beitrag]] zu finden.}} | ||
</div> | |||
=== HTTP-Proxy: Authentifizierungsausnahmen === | ==== {{#var:50|HTTP-Proxy: Authentifizierungsausnahmen}} ==== | ||
In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben: | <div class="Einrücken"> | ||
{{#var:51|In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben:}} | |||
* {{#var:48|Beispiel:}} {{code|www\.securepoint\.de}} | |||
</div> | |||
=== HTTP-Proxy: SSL-Interception === | ==== {{#var:52|HTTP-Proxy: SSL-Interception}} ==== | ||
Bei der SSL-Interception wird das selbe Prinzip wie bei den Authentifizierungsausnahmen angewendet. Die URL wird ohne Protokoll als Regex angegeben. | <div class="Einrücken"> | ||
{{#var:53|Bei der SSL-Interception wird das selbe Prinzip wie bei den Authentifizierungsausnahmen angewendet. Die URL wird ohne Protokoll als Regex angegeben.}} | |||
* {{#var:48|Beispiel:}} {{code | www\.securepoint\.de}} oder {{code| \.securepoint\.de }} | |||
</div></div> |
Aktuelle Version vom 29. September 2023, 09:57 Uhr
Syntax und Anwendung von Regex-Ausdrücken
Letzte Anpassung: 11.8
Neu:
- Artikelanpassung
- Übersetzung
notempty
Dieser Artikel bezieht sich auf eine Resellerpreview
- Einleitung
Bei der Konfiguration der UTM werden für mehrere Anwendungen reguläre Ausdrücke (kurz Regex) benötigt. Ein Regex wird dazu verwendet, um eine Zeichenkette auf eine bestimmte Zusammensetzung zu prüfen. Im Folgenden wird die Zusammensetzung und die Anwendung von Regexen innerhalb der Securepoint UTM erklärt.
Zusammensetzung
Innerhalb des Regex werden folgende Zeichen verwendet:
. |
steht für ein beliebiges Zeichen |
[abc] |
matcht auf alle Buchstaben in den Klammern: a, b oder c |
[^abc] |
matcht auf alle Buchstaben außer: a, b oder c |
[a-z] |
matcht auf alle Buchstaben von: a bis z |
[a-zA-Z] |
matcht auf alle Buchstaben von: a bis z oder A bis Z |
^ |
Steht für den Beginn einer Zeile |
$ |
steht für das Ende einer Zeile |
\s |
steht für ein Leerzeichen |
\ |
hebt die Regex-Funktion des nächsten Zeichens auf und "sucht" somit nach dem folgenden Zeichen |
\r\n |
ist ein Return oder ein Linefeed (Windows neue Zeile) |
* |
wiederholt das vorherige Zeichen beliebig oft - auch 0 Mal |
+ |
wiederholt das vorherige Zeichen beliebig oft - mindestens 1 Mal |
{1} |
steht für das vorherige Zeichen, 1 Mal |
{2,4} |
steht für das vorherige Zeichen, 2 bis 4 Mal nacheinander |
{3,} |
steht für das vorherige Zeichen, mindestens 3 Mal |
[^:] |
steht für alles außer einem Doppelpunkt |
Beispiele
Beispiel 1
Im Beispiel wird der eingegebene Wert eines Textfeldes geprüft. In dem Textfeld soll die Hausnummer eingetragen werden. Durch die vorher definierte Stadt bleiben nur Hausnummern von 1 bis 9 und Adresszusätze von a bis f.
- Der Regex für diesen Fall würde so aussehen:
[1-9][a-f] - Wird der Adresszusatz, also a-f groß geschrieben, würde dieser Regex nicht matchen. Damit groß geschriebene Buchstaben erfasst werden, müsste der Regex so aussehen:
[1-9][A-F] - Um die Groß- UND Kleinschreibung zuzulassen, müsste der Regex so aussehen:
[1-9][a-fA-F]
Beispiel 2
- Im Beispiel soll der Regex auf alle zusammenhängenden Wörter matchen, welche auf point enden.
checkpoint
mountpoint
securepoint - Ein Regex der auf alle genannten Wörter matcht sieht so aus:
.*point - Praktisch würde auch folgendes vom Regex erfasst werden:
das ist kein point - Um das Verhalten zu unterbinden, müsste folgender Regex verwendet werden:
[a-zA-Z]*point
Beispiel 3 - URL-Regex
Im URL-Beispiel soll auf www.securepoint.de gematcht werden.
- Folgender Regex wäre korrekt:
\.securepoint\.de
Die beiden Punkte innerhalb der URL stehen bei einem Regex normalerweise für ein beliebiges Zeichen. Am Beispiel der URL soll jedoch auf genau diesen Punkt gematcht werden und nicht auf ein beliebiges Zeichen. Wie oben bereits erwähnt, hebt der Backslash \ die Regex-Funktion des folgenden Zeichens auf. So kann auch auf den Punkt gematcht werden. In einem solchen Fall wird vom "escapen" eines Zeichens gesprochen.
Anwendungsbereiche von Regexen
HTTP-Proxy: Virenscanner
Soll beispielsweise die URL http://download.windowsupdate.com in die Whitelist des Virenscanners aufgenommen werden, ist es sehr wichtig, dass letztendlich genau diese URL in die Whitelist aufgenommen wird.
- Der passende Regex lautet also:
http://download\.windowsupdate\.com/ - Alternativ kann auf alle Protokolle gematcht werden. So zu finden in den vordefinierten Ausnahmen des Virenscanners:
Beispiel: ^[^:]*://download\.windowsupdate\.com/
Eine Sammlung von verschiedenen Virenscanner-Regex-Ausdrücken sind in diesem Beitrag zu finden.
HTTP-Proxy: Authentifizierungsausnahmen
In den Authentifizierungsausnahmen des Proxy muss das Protokoll nicht angegeben werden. Hier wird einfach die URL ohne Protokoll als Regex angegeben:
- Beispiel: www\.securepoint\.de
HTTP-Proxy: SSL-Interception
Bei der SSL-Interception wird das selbe Prinzip wie bei den Authentifizierungsausnahmen angewendet. Die URL wird ohne Protokoll als Regex angegeben.
- Beispiel: www\.securepoint\.de oder \.securepoint\.de