-
Notifications
You must be signed in to change notification settings - Fork 0
filter
Hamatoma edited this page Sep 27, 2022
·
10 revisions
Mit Suchmustern werden die Teile der Eingabe spezifiziert, die in der Ausgabe erscheinen sollen.
| Name | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| append | bool | das Ergebnis wird im Zielpuffer angehängt |
app
|
| end | pattern | Es werden nur Zeilen untersucht, die vor einer Zeile stehen, die auf dieses Suchmuster passt. |
end="</address>"
|
| excluded | pattern | Passt eine Zeile auf diesen regulärer Ausdruck, wird sie nicht ins Ziel übernommen. |
excluded=r/2021\.\d+.\d+/
|
| Excluded | patternList | Eine Liste von regulären Ausdrücken: Passte eine auf eine Zeile, wird diese nicht ins Ziel übernommen. Auto-Separator. |
Excluded=;/Hello /;r/[hH]i /"
|
| filter | pattern | Passt eine Zeile auf diesen regulärer Ausdruck, wird sie ins Ziel übernommen. |
filter=r/2021\.\d+.\d+/
|
| Filters | patternList | Eine Liste von regulären Ausdrücken: Passte eine auf eine Zeile, wird diese ins Ziel übernommen. Auto-Separator. |
Filters=;/Hello /;r/[hH]i /"
|
| input | bufferName | Der Text aus diesem Puffer wird gefiltert. Voreinstellung: input |
input=data
|
| meta | character | Delimiter für die Platzhalter innerhalb von input. Voreinstellung: % |
meta=%
|
| output | bufferName | das Ergebnis wird in diesen Puffer geschrieben. Voreinstellung: output |
output=result
|
| repeat | nat | Ist diese Zahl größer 1, wird der Bereich start und end entsprechend oft gesucht. 0: beliebig oft suchen. Nur sinnvoll, wenn sowohl start und end definiert sind. Voreinstellung: 1 | repeat=5 |
| start | pattern | Es werden nur Zeilen untersucht, die ab einer Zeile stehen, die auf dieses Suchmuster passt. |
start=/<address>/start=r/<(id|name)/
|
| template | string | Für jeden Treffer wird diese Vorlage ausgegeben, nachdem dort die Platzhalter ersetzt wurden. Wird kein template angegeben, wird die ganze Zeile mit dem Treffer ausgegeben. Kann interpolierten Text enthalten. |
template=i~"Name: %1%~n"
|
| Templates | stringList | Das Analogon zu template, wenn Filters statt filter angegeben wurde. Der erste Eintrag in 'Templates' ist dem ersten Eintrag in Filters zugeordnet, usw. Wird kein Templates angegeben, wird die ganze Zeile mit dem Treffer ausgegeben. Kann interpolierten Text enthalten. |
Templates=;i~"Name: %1%~n";i~"Id: %1%~n"
|
Hinweise:
- Von den Parametern filter und Filters muss genau einer angegeben werden, also nicht keiner und nicht beide.
- Von den Parametern template und Templates darf höchstens einer angegeben werden.
In den Parametern template und Templates können folgende Platzhalter auftauchen:
- %group0%: der gesamte Treffer des regulären Ausdrucks.
- %group1%: das, was mit dem ersten Klammerpaar im regulären Ausdruck gefunden wird. Klammerpaare werden nach dem Auftreten der öffnenden Klammer nummeriert.
- %group2%: das, was mit dem zweiten Klammerpaar im regulären Ausdruck gefunden wird.
- %0%: die Kurzform für %group0%
- %1%: die Kurzform für %group1%
Gilt für alle Beispiele: In Puffer input steht:
<?xml version="1.0" encoding="UTF-8"?>
<staff>
<company>
<name>Easy Rider</name>
</company>
<person>
<id>1</id>
<name>Adam</name>
</person>
<person>
<id>2</id>
<name>Berta</name>
</person>
<person>
<id>3</id>
<name>Charly</name>
</person>
</staff>
Kommando:
filter fi=/name/In Puffer output steht:
<name>Easy Rider</name>
<name>Adam</name>
<name>Berta</name>
<name>Charly</name>
Kommando:
filter start=/<person/ end=!</person!>fi=/name/ repeat=2In Puffer output steht:
<name>Adam</name>
<name>Berta</name>
Kommando:
filter start=/<person/ end=!</person!>fi=r/<(name|id)>(.*?)</repeat=2>template="%group1%: %group2%"In Puffer output steht:
id: 1 name: Adam id: 2 name Berta
Kommando:
filter start=/<person/ end=!/person! Filters=;"<name";"<id" repeat=2In Puffer output:
<id>1</id>
<name>Adam</name>
<id>1</id>
<name>Berta</name>
Kommando:
filter start=/<person/ end=!</person!>Filters=;r"<(name)>(.*?)<";r"<id>(.*?)<" repeat=2 Templates=;"%1%: %2%\n";"no: %1%\n"In Puffer output:
no: 1 name: Adam no: 2 name: Berta
Kommando:
filter start=/<person/ excluded=r!id|person|staff!In Puffer output steht:
<id>1</id>
<id>2</id>
<id>3</id>