regulární výraz (zkráceně regex nebo regexp) je posloupnost znaků, které tvoří vyhledávací vzor hlavně pro použití při porovnávání vzorů s řetězce nebo řetězec-matching. Funkce je podobná pro hledání a nahrazování operací s větší složitostí a specifičností. Podívejte se na heslo wikipedie pro podrobný popis regexp a tabulku použitých znaků.
Do použít více regexpů najednou vložit znak kanálu |
mezi nimi.
Regexp lze použít ve filtru hledat a nahrazovat pole v editoru CAT plochy, v polích zdroj a cíl funkce , Hledat pro obsah, pro v nastavení importu souborů a pro přizpůsobení pravidelsegmentace.
Důležitý
Phrase podporuje Java regexp, ale bude vrátit složité regulární výrazy, které chrání systém před přetížením. Komplexní regexpy jsou ty, které mají kvantifikátory (kromě přivlastňovadel) na grupách, které obsahují jiné kvantifikátory (kromě přivlastňovadel).
Příklady převodu textu na tagy při importu souborů a použití regexp v editoru pro funkce vyhledávání a nahrazování:
Příklad |
Popis |
---|---|
<[^>]+> |
represents <html_tag> |
\{[^\}]+\} |
představuje {proměnnou}, |
\[[^\]]+\] |
představuje [proměnnou], |
\[\[.+?\]\] |
představuje [[AA[11]bb]]. |
\$[^\$]+\$ |
představuje $operator_Name1$. |
\d+ |
představuje čísla. Také [0-9]+ |
[A-Za-z0-9] |
představuje libovolný alfanumerický znak. |
.+\@.+\.. + |
e-mailová adresa name@domain.com |
\d{4}[-]\d{2}[-]\d{2} |
Datum: 2018-08-01 |
\s$ |
oddělovací znak na konci segment |
^\s |
oddělovací znak na začátku segment |
\s\s |
Dvojitá oddělovací znak |
^\d |
číslice na začátku segment |
\w+\s\s\w+ |
dvojitý oddělovací znak mezi slov |
\s\n |
Nový řádek, kterému předchází libovolný znak oddělovací znak |
\S\n |
Nový řádek, kterému předchází libovolný znak, který není znakem oddělovací znak |
<[^>]+>|\$[^=]+= |
Převádí php proměnné a HTML kód ($svariable['name'] =) |
^\s*\'[^:]+: |
Převede klíč pole JavaScriptu s přidáno mezerami na začátku řádku ('key' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
nepřeloží {{text here}} '{{text here}} obsah a převede jej na tagy |
Příklady regulárních výrazů při importu konkrétní textu:
-
## ErrorReport ##1## Číslo musí být vyšší než 0. ##Z##
Do import text mezi ##1## a ##Z## ,použijte regexp: (?<=##1## ).*(?= ##Z## ,)
-
ErrorMessage ("Číslo musí být vyšší než 0.")
Do import text mezi (" a ") , použijte regexp:
(?<=\(").*(?="\))
'errorMessage' = 'Číslo musí být vyšší než 0.'
Do import text za znakem = a mezi ' a ' použijte regexp: (?<=\= ').*(?= ' , )
errorMessage = "toto má být přeloženo"
Do import text za znakem = a mezi "a" použijte regexp: (?<=\= ").*(?=")
-
msgstr ("Číslo musí být vyšší než 0.")
Do import msgstr řetězce v monolingvních souborech Objednávka pomocí filtru TXT, použijte regexp:
(?<=msgstr ").*(?=")
# Poznámka: Jedná se o poznámka
Do vyloučit řádky začínající znakem # , použijte regexp: (^[^# , ].*)
hodnoty '126', 'DCeT', 'Text (cs)'
Do import pouze text v uvozovkách a s (en),, například Text (en)' použijte regexp: (?<=')[^']*\(en\)(?=')
Příklad struktury JSON:
{
"seznam": {
"id": "1",
"hodnota": "text 1 pro překlad."
},
"text": {
"id": "2",
"hodnota": "text 2 pro překlad."
},
"menu": {
"id": "3",
"hodnota": "text 3 pro překlad."
},"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "BLUE"
}, { "color": "zelená", "title": "ZELENÁ" } ]}
-
Pro import každé hodnoty bez ohledu na úroveň použijte: (^|. */)hodnota
-
Chcete-li importovat pouze jednu hodnotu ze seznamu, použijte: seznam/ hodnota
-
Pro import hodnoty ze seznamu nebo nabídky použijte tlačítko | (OR) operátor: seznam/hodnota|menu/hodnota
-
Chcete-li importovat pouze první instanci hodnoty z nabídky, použijte: menu\[1\]/value
-
pro import obsah pole JSON po určitém klíči použijte: (^|. */)pole\[.*\]
-
Chcete-li import obsah konkrétní pole objektů, použijte: (^|. */)pole\[.*\].*
Příklad mouchy YAML:
titul: A
text: přeložit A
Kategorie:
titul: B
text: přeložit B
Kategorie:
titul: C
text: přeložit C
Kategorie:
obsah:
titul: D
text: přeložit D
regexp pro import:
-
pouze "přeložit A" :
text
-
pouze 'přeložit C':
kategorie\[2\]/text
-
pouze 'přeložit D':
kategorie\[\d+\]/content[\1\]/text
veškerý text: text|kategorie\[\d+\]/text|kategorie\[\d+\]/content[\d+\]/text
Okapi, Java a Unicode se používají pro pravidla segmentace v . SRX soubory.
Použití regexp v . SRX soubory jsou komplexní a základní znalosti o regulární výraz použití je doporučeno před pokusem práce s nimi.
Pravidla přerušení (Zkratky atd.) a Pravidla přerušení (Konec věty s tečkou atd.) jsou v . SRX soubory.
Příklad
Popis
[\p{C}]
Neviditelný řídicí znak.
[\p{Z}]
Prázdné místo
[\p{Lu}]
Velké písmeno, které má variantu s malými písmeny.
[\p{N}]
Jakýkoli číselný znak.
\Q ... \E
Začátek a konec nabídky - (\QApprox.\E). Používá se pro zkratky.
\t
Tabelátor
\n
Newline
\u2029
Oddělovač odstavců
\u200B
Prostor s nulovou šířkou
\u3002
Ideografická tečka
\ufe52
Malá tečka
\uff0e
Tečka na plnou šířku
\uff61
Ideografická tečka s poloviční šířkou
\ufe56
Malý otazník
\uff1f
Otazník s plnou šířkou
\u203c
Dvojitý vykřičník
\u2048
Vykřičník otazníku
\u2762
Těžký ornament s vykřičníkem
\u2763
Těžké srdce vykřičník ornament
\ufe57
Malý vykřičník
\uff01
Vykřičník s plnou šířkou
QA Check
Zdroj: Regexp
Cílový regexp
Další čísla v cíl
\d
\d
Tagy objednávka (nespárované)
^.*\{1\}.*\{2\}.*$
^.*\{1\}.*\{2\}.*$
Tagy objednávka (nespárované)
^.*\{1\}.*\{2\}.*\{3\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*$
Tagy objednávka (nespárované)
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
^.*\{1\}.*\{2\}.*\{3\}.*\{4\}.*$
Tagy objednávka (spárované)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*$
Tagy objednávka (spárované)
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
^.*\{1\>.*\<1\}.*\{2\>.*\<2\}.*\{3\>.*\<3\}.*$
Mezery před tagy
\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})
\s(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})
Mezery po tagy
(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})\s
(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})\s
Před tagy není mezera
\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})
\S(\{[1-9][0-9]*\}|\{[1-9][0-9]*>|<[ 1-9][0-9]*\}|\{[biu_\^]{1,4}>|<[ biu_\^]{1,4}\})
Chybí hranatých závorek
[^\[\]]*\[[^\[\]]*\][^\[\]]*
[^\[\]]*\[[^\[\]]*\][^\[\]]*
Chybí kulatých závorek
[^\(\)]*\([^\(\)]*\)[^\(\)]*
[^\(\)]*\([^\(\)]*\)[^\(\)]*