W programie Chain Builder możesz używać operatorów wyrażeń regularnych (regex) do dopasowywania znaków w ciągach tekstowych, na przykład do definiowania wzorców dla:
- Mapowanie reguł transformacji dla potoku Data Prep connector
- Polecenia File Utilities connector's Find, Find and replace, and Split file commands
- Transformacja tabelaryczna Łącznik's Filtr kolumn, Filtr wierszy, Znajdź i zamień, Połącz kolumny, i Polecenia inteligentnego filtrowania wierszy
Wspólni operatorzy
Aby zdefiniować wzorce do dopasowania, możesz użyć tych popularnych operatorów:
| Operator | Opis | Przykład | Zwroty |
|---|---|---|---|
^ |
Dopasowuje początek ciągu znaków | ^abc |
abc, abcdef..., abc123 |
$ |
Dopasowuje koniec ciągu znaków | abc$ |
my:abc, 123abc, theabc |
. |
Dopasowuje dowolny znak jako symbol wieloznaczny | a.c |
abc, asc, a123c |
| |
Znak OR | abc|xyz |
abc lub xyz |
(...) |
Przechwytuje wartości w nawiasach | (a)b(c) |
a i c |
[...] |
Dopasowuje wszystko wewnątrz nawiasów | [abc] |
a, b, lub c |
[a-z] |
Dopasowuje małe litery od a do z | [b-z] |
bc, mind, xyz |
[0-9] |
Dopasowuje dowolne wartości liczbowe od 0 do 9 | [0-3] |
3201 |
{x} |
Dokładna liczba dopasowań | (abc){2} |
abcabc |
{x,} |
Minimalna liczba dopasowań | (abc){2,} |
abcabcabc |
* |
Dopasowuje cokolwiek w miejscu * lub "zachłanne" dopasowanie | ab*c |
abc, abbcc, abcdc |
+ |
Dopasowuje znak przed + jeden lub więcej razy | a+c |
ac, aac, aaac |
? |
Dopasowuje znak przed znakiem ? zero lub jeden razy, lub dopasowanie "non-greedy" | ab?c |
ac, abc |
/ |
Unika znaku po znaku / lub tworzy sekwencję ucieczki | a/bc |
a c, ze spacją odpowiadającą /b |
Aby użyć dosłownego znaku operatora we wzorcu, nie jako regex:
- W przypadku spacji (
^), kropki (.), otwartego nawiasu ([), znaku dolara ($), otwartego lub zamkniętego nawiasu (() lub ()), potoku (|), gwiazdki (*), znaku plus (+), znaku zapytania (?), otwarty nawias klamrowy ({) lub odwrotny ukośnik (\), a następnie operator ucieczki (\). - W przypadku nawiasu końcowego (
]) lub nawiasu końcowego (}), ustaw go jako pierwszy znak, z otwarciem lub bez^. - W przypadku myślnika (
-) ustaw go jako pierwszy lub ostatni znak, lub jako drugi punkt końcowy zakresu.
Wskazówka: Wszystkie znaki w nawiasach są traktowane dosłownie i nie jako operatory regex. Na przykład, [*\+?{}.] dopasowuje dowolny z dosłownych znaków wewnątrz nawiasów.
Dopasowanie początku lub końca ciągu znaków (^ i $)
Aby dopasować wzorce na początku lub na końcu ciągu, użyj odpowiednio operatorów ^ i $ . Na przykład:
| Przykład | Mecze |
|---|---|
^The |
Dowolny ciąg znaków zaczynający się od |
rozpaczy$ |
Każdy ciąg, który kończy się na rozpaczy |
^abc$ |
Ciąg znaków zaczynający się i kończący na abc- dokładne dopasowanie |
Wskazówka: Jeśli nie użyto ^ lub $, wzorzec pasuje do dowolnego ciągu, który zawiera określone znaki. Na przykład, notice- bez ^ lub $- zwraca dowolny ciąg znaków, który zawiera notice.
Dopasowane znaki (*, + oraz ?)
Aby dopasować wzorce na podstawie określonego znaku, zastosuj operator *, + lub ?. Operatory te wskazują, ile razy znak powinien wystąpić w dopasowaniu - odpowiednio zero lub więcej, jeden lub więcej, jeden lub zero. Na przykład:
| Przykład | Mecze |
|---|---|
ab* |
Ciąg znaków zawierający a, po którym następuje zero lub więcej bs-ac, abc, lub abbc |
ab+ |
Ciąg znaków zawierający a, po którym następuje jeden lub więcej bs-abc lub abbc, ale nie ac |
ab? |
Ciąg znaków zawierający a, po którym następuje zero lub jeden bs-ac lub abc, ale nie abc |
a?b+$ |
Ciąg, który kończy się jednym lub więcej bs, z lub bez poprzedzającego a; na przykład ab, abb, b, lub bb, ale nie aab lub aabb |
Dopasuj częstotliwość znaków ({...} lub (...))
Aby dopasować wzorzec w oparciu o częstotliwość występowania pojedynczego znaku, podaj za nim liczbę lub zakres wystąpień, ujętych w nawiasy klamrowe ({...}). Na przykład:
| Przykład | Mecze |
|---|---|
ab{2} |
Ciąg znaków zawierający a, po którym następują dokładnie 2 bs-abb |
ab{2,} |
Ciąg znaków zawierający a, po którym następują co najmniej 2 bs-abb, abbbb itd. |
ab{3,5} |
Ciąg znaków zawierający a, po którym następuje od trzech do pięciu bs-abbb, abbbb, lub abbbbbb |
Wskazówka: Zawsze podawaj pierwszy numer zakresu -{0,2}, nie {,2}. Zamiast zakresów {0,}, {1,}, lub {0,1}, możesz użyć operatorów *, +, lub ?, odpowiednio.
Aby dopasować wzorzec na podstawie częstotliwości występowania sekwencji znaków, zawiń ją w nawiasy ((...)). Na przykład, a(bc){1,5} pasuje do ciągu, który zawiera a, a następnie od jednego do pięciu wystąpień bc.
Dopasuj jeden z wielu wzorców (|)
Aby dopasować jeden z wielu wzorców - takich jak this OR that- użyj operatora OR |. Na przykład:
| Przykład | Mecze |
|---|---|
cześć|powitanie |
Ciąg znaków zawierający hi lub hello |
(b|cd)ef |
Ciąg znaków zawierający bef lub cdef |
(a|b)*c |
Ciąg, który ma sekwencję naprzemiennych as i bs, kończącą się c |
Dopasuj dowolny znak (.)
Aby przedstawić dowolny znak we wzorcu do dopasowania, użyj operatora wieloznacznego .. Na przykład:
| Przykład | Mecze |
|---|---|
a.[0-9] |
Ciąg znaków zawierający a, po którym następuje dowolny znak i cyfra |
^.{3}$ |
Dowolny ciąg składający się z dokładnie trzech znaków |
Dopasuj pozycję znaku ([...])
Aby dopasować wzorzec na podstawie pozycji znaku, użyj nawiasów ([...]). Na przykład:
| Przykład | Mecze |
|---|---|
[ab] |
Ciąg znaków zawierający albo a albo b; odpowiednik a|b |
[a-d] |
Ciąg znaków zawierający małe litery |
^[a-zA-Z] |
Ciąg znaków zaczynający się od dowolnej litery, niezależnie od wielkości liter |
[0-9]% |
Ciąg znaków zawierający dowolną pojedynczą cyfrę, po której następuje znak procentu |
,[a-zA-Z0-9]$ |
Ciąg znaków zakończony przecinkiem, po którym następuje dowolny znak |
Uwaga: Wszystkie znaki w nawiasach są traktowane dosłownie, a nie jako operatory regex. Na przykład, [*\+?{}.] dopasowuje dowolny z dosłownych znaków wewnątrz nawiasów.
Dopasuj niechciane znaki ([^...])
Aby dopasować wzorzec, który nie nie zawiera znaków, rozpocznij sekwencję od operatora ^ i zawiń ją w nawiasy. Na przykład, %[^a-zA-z]% dopasowuje ciąg znaków zawierający dowolny nieliterowy znak pomiędzy dwoma znakami procentu.