Import nástrojů

Regex (TMS)

Obsah je strojově přeložen z angličtiny s použitím Phrase Language AI.

Regulární výraz (zkráceně regex nebo regexp) je sekvence znaků, která tvoří vyhledávací vzor, hlavně pro použití při porovnávání vzorů s řetězci nebo porovnávání řetězců. Funkčnost je podobná operacím najít a nahradit s větší složitostí a specifikací nebo jako metoda pro vyloučení definovaného obsahu. Viz položka wikipedia pro podrobný popis regexu a tabulku použitých znaků.

Pro použití více regexů najednou vložte mezi ně znak potrubí |.

Regex může být použit v polích pro filtrování, vyhledávání a nahrazování v CAT editoru, v polích zdroje a cíle funkce vyhledávání obsahu, pro funkci Převést na značky v Nastavení importu souborů a pro přizpůsobení pravidel segmentace. Konvertor a CAT desktopový editor používají Java regex, zatímco CAT webový editor a vyhledávání v TMS používají Lucene regex nástroj.

Tip

Chatboti umělé inteligence mohou být při generování a ověřování regexu velmi efektivní.

Použijte Nástroje jako Regex101 k testování regexu s různými vstupy.

Důležité

Phrase podporuje Java regex, ale vrátí složité regulární výrazy, aby chránil systém před přetížením. Složené regexy jsou ty, které mají kvantifikátory (kromě přivlastňovacích) na skupinách, které obsahují další kvantifikátory (kromě přivlastňovacích).

Obecné příklady

Příklady pro převod textu na značky při importu souborů a použití regexu v desktopovém editoru pro filtrování a funkce najít a nahradit:

Příklad

Popis

<[^>]+>

represents <html_tag>

\{[^\}]+\}

představuje {proměnná},

\[[^\]]+\]

představuje [proměnná],

\[\[.+?\]\]

představuje [[aa[11]bb]].

\$[^\$]+\$

represents $operator_Name1$.

\d+

představuje čísla. Také, [0-9]+

[A-Za-z0-9]

představuje jakýkoli alfanumerický znak.

.+\@.+\..+

e-mailová adresa jméno@doména.com

\d{4}[-]\d{2}[-]\d{2}

datum 2018-08-01

\s$

bílý znak na konci segmentu

^\s

bílý znak na začátku segmentu

\s\s

dvojitý bílý znak

^\d

číslice na začátku segmentu

\w+\s\s\w+

dvojitý bílý znak mezi slovy

\s\n

nový řádek předcházený jakýmkoli bílým znakem

\S\n

nový řádek předcházený jakýmkoli znakem, který není bílý

<[^>]+>|\$[^=]+=

převádí php proměnné a html kód ($svariable['name'] =)

^\s*\'[^:]+:

převádí javascriptové pole klíče s přidanými mezerami na začátku řádku ( 'key' :)

\{\{[^\}]+\}\}|\'[^']+\'

nepřekládá {{text here}} '{{text here}} obsah a převádí ho na tagy

\{\{[^\}]+\}\}

reprezentuje text mezi {{}} závorkami

\([^\)]+\)

reprezentuje text mezi () závorkami

\^[^\^]+\^

reprezentuje text mezi ^ značkami

\@[^\@]+\@

reprezentuje text mezi @ značkami

\^[^\^\?]+\?

reprezentuje text mezi ^ a ? značkami

\'[^']+\'

reprezentuje text mezi ' ' apostrofy

\"[^"]+\"

reprezentuje text mezi "" uvozovkami

\%[^\%]+\%

reprezentuje text mezi % symboly

\$\{[^}]*\}

reprezentuje text mezi ${ a }, např. ${variable}

\$[a-zA-Z0-9\-_]+

reprezentuje řetězec, který začíná s $, např. $appName

(?<=\: ").*(?=")

reprezentuje text uvnitř dvojitých uvozovek po dvojtečce a mezeře, např. value v řetězci "key": "value"

(?<=\: ').*(?=')

reprezentuje text uvnitř jednoduchých uvozovek po dvojtečce a mezeře, např. JohnDoe v řetězci uživatel: 'JohnDoe'

(?<=\=).*(?=)

reprezentuje text po znaménku rovná se a bez mezery, např. key=value

(.*)=

reprezentuje text před znaménkem rovná se

=(.*)

představuje text za znakem rovnosti

\/\/\S*

představuje hypertextové odkazy. Také, https:\/\/\S*

</?mrk[^>]*>

představuje HTML/XML otevřené a uzavřené mrk tagy, např. <mrk id="abc"> a </mrk>

TXT Import

Poznámka

Protože TXT soubory v TMS jsou zpracovávány řádek po řádku, určité regulární výrazy, které fungují v jiných prostředích, nemusí fungovat podle očekávání.

Příklady regulárních výrazů při importu konkrétního textu:

  1. ## ChybováZpráva ##1## Číslo musí být vyšší než 0. ##Z##

    Pro import textu mezi ##1## a ##Z##, použijte regex: (?<=##1## ).*(?= ##Z##)

  2. ChybováZpráva ("Číslo musí být vyšší než 0.")

    Pro import textu mezi (" a "), použijte regex: (?<=\(").*(?="\))

  3. 'chybováZpráva' = 'Číslo musí být vyšší než 0.'

    Pro import textu za = znakem a mezi ' a ', použijte regex: (?<=\= ').*(?=')

  4. chybováZpráva = "to je k překladu"

    Pro import textu za znakem = a mezi 'a' použijte regex: (?<=\= ").*(?=")

  5. msgstr ("Číslo musí být vyšší než 0.")

    Pro import msgstr řetězců v monolingvních PO souborech pomocí TXT filtru, použijte regex: (?<=msgstr ").*(?=")

  6. # Poznámka: Toto je poznámka

    Pro vyloučení řádků začínajících na #, použijte regex: (^[^#].*)

  7. hodnoty '126', 'DCeT', 'Text (en)'

    Importovat pouze text v uvozovkách a s (en), jako je Text (en), použijte regex: (?<=')[^']*\(en\)(?=')

JSON Import

Příklad struktury JSON:

{
"seznam": {
        "id": "1",
        "value": "text 1 for translation."
        },
"text": {
        "id": "2",
        "value": "text 2 for translation."
        },
"menu": {
        "id": "3",
        "value": "text 3 for translation."
         },"array": ["blue","green"],"arrays": [{        "color": "blue",        "title": "BLUE"
         },         {        "color": "green",        "title": "GREEN"         }    ]}
  • pro import všech hodnot bez ohledu na úroveň použijte: (^|.*/)value

  • pro import pouze jedné hodnoty ze seznamu použijte: seznam/hodnota

  • pro import hodnoty ze seznamu a/nebo menu použijte operátor | (NEBO): seznam/hodnota|menu/hodnota

  • pro import pouze první instance hodnoty z menu použijte: menu\[1\]/hodnota

  • pro import obsahu JSON pole následujícího určitému klíči použijte: (^|.*/)pole\[.*\]

  • pro import obsahu konkrétního pole objektů použijte: (^|.*/)pole\[.*\].*

Import YAML

Příklad souboru YAML:

title: A
text: translate A
categories:
  title: B
  text: translate B
categories:
  title: C
  text: translate C
categories:
  content:
      title: D
      text: translate D

regex pro import:

  • pouze 'přeložit A' : text

  • pouze 'přeložit C': kategorie\[2\]/text

  • pouze 'přeložit D': kategorie\[\d+\]/obsah[\1\]/text

  • veškerý text: text|kategorie\[\d+\]/text|kategorie\[\d+\]/obsah[\d+\]/text

Pravidla segmentace

Okapi, Java a Unicode se používají pro pravidla segmentace v .SRX souborech.

Použití regexu v .SRX souborech je složité a doporučuje se základní znalost použití regulárních výrazů před pokusem o práci s nimi.

Pravidla bez zalomení (zkratky atd.) a pravidla pro zalomení (konec věty tečkou atd.) jsou v .SRX souborech.

Příklad

Popis

[\p{C}]

Neviditelný ovládací znak.

[\p{Z}]

Whitespace

[\p{Lu}]

Velké písmeno, které má variantu malého písmena.

[\p{N}]

Jakýkoli druh číselného znaku.

\Q ... \E

Začátek a konec citace - (\QPřibl.\E). To se používá pro zkratky.

\t

Tabulátor

\n

Nový řádek

\u2029

Oddělovač odstavců

\u200B

Znak s nulovou šířkou

\u3002

Ideografická tečka

\ufe52

Malá tečka

\uff0e

Široká tečka

\uff61

Poloviční ideografická tečka

\ufe56

Malý otazník

\uff1f

Široký otazník

\u203c

Dvojitý vykřičník

\u2048

Otazník vykřičník

\u2762

Těžký ornament vykřičníku

\u2763

Těžký ornament vykřičníku srdce

\ufe57

Malý vykřičník

\uff01

Celší vykřičník

`[\u0080-\uFFFF]+`

Znaky z rozsahu Unicode \u0080 do \uFFFF

`[\u00a8\u00b9\u00c4]+`

Jedno nebo více výskytů specifikovaných Unicode znaků uvnitř hranatých závorek, např. \u00a8 + \u00b9 + \u00c4

Běžné vlastní QA kontroly

Kontrola QA

Regex zdroj

Regex cíl

Další čísla v cíli

\d 

\d 

Pořadí tagů (nepárové, pro segmenty se 3 tagy).

Upravte regex podle požadovaného počtu tagů.

^.*\{1\}.*\{2\}.*\{3\}.*$

^.*\{1\}.*\{2\}.*\{3\}.*$

Pořadí tagů (párové, pro segmenty se 3 tagy).

Upravte regex podle požadovaného počtu tagů.

^.*\{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 za 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

Žádná mezera 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}\})

Znaky, které nejsou bílými znaky po párových tagech

((\{[1-9][0-9]*>)|(<[1-9][0-9]*\}))\S

((\{[1-9][0-9]*>)|(<[1-9][0-9]*\}))\S

Chybějící hranaté závorky

[^\[\]]*\[[^\[\]]*\][^\[\]]* 

[^\[\]]*\[[^\[\]]*\][^\[\]]* 

Chybějící kulaté závorky

[^\(\)]*\([^\(\)]*\)[^\(\)]* 

[^\(\)]*\([^\(\)]*\)[^\(\)]* 

Použijte následující regulární výrazy k ověření stejného počtu identických desetinných čísel, přičemž použijte vhodný jazykově specifický desetinný oddělovač.

(?<;n1>;\d+)\.(?<;n2>;\d+)

(?<;n1>;\d+),(?<;n2>;\d+)

Byl pro vás tento článek užitečný?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.