Regulární výraz (zkráceně regexp nebo regexp) je posloupnost znaků, které tvoří vyhledávací vzor hlavně proto, aby se použily při přiřazování vzorů se Strings nebo přiřazování řetězců. Funkce je podobná složitějším a specifičtějším operacím, které najdou a nahradí, nebo jako metoda vyloučení definovaného obsahu. Podrobný popis regexpu a tabulka použitých znaků naleznete v položce wikipedie.
Chcete-li použít více regexpů současně, vložte mezi ně znak pipeline |
.
Pomocí regexpů lze filtrovat, vyhledat a nahradit pole v desktopovém editoru CAT, pole zdroj a cíl funkce vyhledávání obsahu, funkci v nastavení importu souborů a přizpůsobit pravidla segmentace.
Chatboti umělé inteligence mohou být velmi efektivní při generování a ověřování regexpu.
Důležité
Phrase podporuje regexp v Java, ale nevrátí složité regulární výrazy, aby ochránil systém před přetížením. Složité regexpy jsou ty s kvantifikátory (kromě přivlastňovacích) ve skupinách, které obsahují jiné kvantifikátory (kromě přivlastňovacích).
Příklady převodu textu na tags při importu souborů a použití regexpu v editor pro funkce vyhledávání a nahradit:
Příklad |
Popis |
---|---|
<[^>]+> |
představuje <html_tag> |
\{[^\}]+\} |
představuje {variable}, |
\[[^\]]+\] |
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-mail name@domain.com |
\d{4}[-]\d{2}[-]\d{2} |
datum 2018-08-01 |
\s$ |
bílé znaky na konci segmentu |
^\s |
bílé znaky na začátku segmentu |
\s\s |
dvojité bílé znaky |
^\d |
číslice na začátku segmentu |
\w+\s\s\w+ |
dvojitá mezera mezi slovy |
\s\n |
nový řádek, kterému předchází libovolný bílý znak |
\S\n |
nový řádek, kterému předchází jakýkoli znak bez mezer |
<[^>]+>|\$[^=]+= |
převede PHP proměnné a html kód ($svariable['name'] =) |
^\s*\'[^:]+: |
převede polní klíč javascriptu s přidanými mezerami na začátku řádku ( 'klíč' :) |
\{\{[^\}]+\}\}|\'[^']+\' |
nepřekládá obsah {{text here}} '{{text here}} a převádí ho na tagy |
Příklady regulárních výrazů při importu konkrétního textu:
-
## ErrorMessage ##1## Číslo musí být vyšší než 0. ##Z##
Pro import textu mezi ##1## a ##Z## ,použijte regexp:
(?<=##1## ).*(?= ##Z##)
-
ErrorMessage ("Číslo musí být vyšší než 0.")
Pro import textu mezi (" a ") použijte regexp:
(?<=\(").*(?="\))
-
'errorMessage' = 'Číslo musí být vyšší než 0.'
Pro import textu po znaménku = a mezi ' a ' použijte regexp:
(?<=\= ').*(?=')
-
errorMessage = "bude přeloženo"
Pro import textu po znaménku = a mezi a použijte regexp:
(?<=\= ").*(?=")
-
"Číslo musí být vyšší než 0.")
Pro import msgstr Strings v jednojazyčných souborech Objednávky pomocí filtru TXT použijte regexp:
(?<=msgstr ").*(?=")
-
# Poznámka: Toto je poznámka
Chcete-li vyloučit řádky začínající na # , použijte regexp:
(^[^#].*)
-
hodnoty '126', 'DCeT', 'Text (cs)'
Pro import pouze textu v uvozovkách a s (cs), jako například Text (cs)' použijte regexp:
(?<=')[^']*\(cs\)(?=')
Příklad struktury JSON:
{ "list": { "id": "1", "value": "text 1 for translation." }, "text": { "id": "2", "value": "text 2 pro překlad." }, „nabídka“: { "id": "3", "value": "text 3 pro překlad." },"array": ["blue","green"],"arrays": [{ "color": "blue", "title": "MODRÁ" }, { "color": "green", "title": "ZELENÁ" } ]}
-
pro import každé hodnoty bez ohledu na úroveň použijte:
(^|.*/)value
-
pro import pouze jedné hodnoty ze seznamu použijte:
seznam/hodnota
-
pro import hodnoty ze seznamu nebo nabídky použijte operátor | (OR):
seznam/hodnota|menu/hodnota
-
pro import pouze první instance hodnoty z nabídky použijte:
menu\[1\]/value
-
pro import obsahu pole JSON podle určitého klíče použijte:
(^|.*/)array\[.*\]
-
k importu obsahu určitého pole objektů použijte:
(^|.*/)arrays\[.*\].*
Příklad souboru YAML:
title: A text: přeložit A Kategorie: title: B text: translate B Kategorie: title: C text: přeložit C Kategorie: obsah: title: D text: přeložit D
regexp pro import:
-
pouze 'přeložit A' :
text
-
pouze 'přeložit C':
categories\[2\]/text
-
pouze 'přeložit D':
categories\[\d+\]/content[\1\]/text
-
veškerý text:
text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
Okapi, Java a Unicode jsou použity pro pravidla segmentace v souborech .SRX.
Použití regexpu v souborech .SRX je složité a před pokusem o zakázku doporučujeme použít základní znalosti regulárních výrazů.
Pravidla pro přerušení (Zkratky apod.) a pravidla pro přerušení (Konec věty s tečkou atd.) jsou v souborech .SRX.
Příklad |
Popis |
---|---|
[\p{C}] |
Skrytý kontrolní znak. |
[\p{Z}] |
Whitespace |
[\p{Lu}] |
Velké písmeno obsahující malé písmeno. |
[\p{N}] |
Jakýkoli numerický znak. |
\Q... \E |
Začátek a konec cenové nabídky - (\QPřibl.\E). Používá se pro zkratky. |
\t |
Tabulátor |
\n |
Newline |
\u2029 |
Oddělovač odstavců |
\u200B |
Space s nulovou šířkou |
\u3002 |
Ideografická tečka |
\ufe52 |
Malá tečka |
\uff0e |
Tečka za plnou šířkou |
\uff61 |
Ideografická tečka s poloviční šířkou |
\ufe56 |
Malý otazník |
\uff1f |
Otazník v celé šířce |
\u203c |
Dvojitý vykřičník |
\u2048 |
Vykřičník otazníku |
\u2762 |
Těžký vykřičník ornament |
\u2763 |
Těžký ornament s vykřičníkem srdce |
\ufe57 |
Malý vykřičník |
\uff01 |
Vykřičník v celé šířce |
Kontrola QA |
Regexp - zdrojový text |
Regexp - cílový text |
---|---|---|
Další čísla v cíli |
|
|
objednávka tags (nepárové, pro segmenty se 3 tags). Upravte regexp podle požadovaného počtu tags. |
|
|
objednávka tags (párové, pro segmenty se 3 tags). Upravte regexp podle požadovaného počtu tags. |
|
|
Mezery před tags |
|
|
Mezery po tags |
|
|
Žádná Space před tags |
|
|
Nebílé znaky po párových tagech |
|
|
Chybějící hranaté závorky |
|
|
Chybějící kulaté závorky |
|
|