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 regex) je posloupnost znaků, které tvoří vyhledávací vzor hlavně pro použití při porovnávání vzorů se Strings nebo porovnávání řetězců. Funkcionalita je podobná operacím najít a Nahradit s větší komplexností a specifičností nebo jako metoda pro vyloučení definovaného obsah. Viz položka wikipedia pro podrobný popis regulárního výrazu a tabulku použitých znaků.

Chcete-li použít více regulárních výrazů najednou, vložte mezi ně znak pipeline |.

Regulární výraz lze použít v polích pro filtrovat, hledat a Nahradit v CAT Editoru, ve zdrojových a cílových polích funkce hledat obsah, pro funkci převést na tagy v nastavení importu souborů a pro přizpůsobení segmentace pravidel. Konvertor a CAT Desktop Editor použít Java regex, zatímco CAT Web Editor a vyhledávání v TMS použít nástroj Lucene regex.

Tip

Chatboti umělá inteligence mohou být při generování a ověřování regulárního výrazu velmi efektivní.

Použijte Nástroje jako Regex101 k testování regulárního výrazu s různými vstupy.

Důležité

Phrase podporuje Java regex, ale bude vracet komplexní regulární výrazy, aby chránil systém před přetížením. Komplexní regulární výrazy jsou ty s kvantifikátory (kromě posesivních) u skupin, které obsahují další kvantifikátory (kromě posesivních).

Obecné příklady

Příklady pro převod textu na tagy při importu souborů a použití regulárního výrazu v desktopovém editoru pro filtrování a funkce Nahradit a najít:

Příklad

Popis

<[^>]+>

představuje <html_tag>

\{[^\}]+\}

představuje {variable},

\[[^\]]+\]

představuje [variable],

\[\[.+?\]\]

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

\$[^\$]+\$

represents $operator_Name1$.

\d+

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

[A-Za-z0-9]

představuje libovolný alfanumerický znak.

.+\\@.+\\..+

e-mailová adresa name@doména.com

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

datum 2018-08-01

\\s$

mezera na konci segmentu

^\s

mezera na začátku segmentu

\\s\\s

dvojitá mezera

^\\d

číslice na začátku segmentu

\w+\s\s\w+

dvojitá mezera mezi slovy

\s\n

nový řádek předcházený libovolným znakem mezery

\S\n

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

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

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

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

převede javascriptový klíč pole s přidanými Space na začátku řádku ( 'klíč' :)

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

nepřekládá {{text here}} '{{text here}} obsah a převede jej na značky

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

představuje text mezi závorkami {{}}

\([^\)]+\)

představuje text mezi závorkami ()

\^[^\^]+\^

představuje text mezi značkami ^

\@[^\@]+\@

představuje text mezi značkami @

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

představuje text mezi značkami ^ a ?

\'[^']+\'

představuje text mezi apostrofy ' '

\"[^\"]+\"

představuje text mezi uvozovkami \"\"

\%[^\%]+\%

představuje text mezi symboly %

\$\{[^}]*\}

představuje text mezi ${ a }, např. ${variable}

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

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

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

představuje text uvnitř dvojitých uvozovek za dvojtečkou a Space, např. value v řetězec \"klíč\": \"value\"

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

představuje text uvnitř jednoduchých uvozovek za dvojtečkou a mezerou, např. JohnDoe v řetězec uživatel: 'JohnDoe'

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

představuje text za rovnítkem a bez mezery, např. klíč=hodnota

(.*)=

představuje text před rovnítkem

=(.*)

představuje text za rovnítkem

\/\/\S*

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

</?mrk[^>]*>

představuje HTML/XML otevřené a zavřené mrk značky, např. <mrk id=\"abc\"> a </mrk>

TXT import

Poznámka

Jelikož jsou soubory TXT v TMS 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 import konkrétního textu:

  1. ## ErrorMessage ##1## Číslo musí být vyšší než 0. ##Z##

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

  2. ErrorMessage (\"Číslo musí být vyšší než 0.\")

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

  3. 'errorMessage' = 'Číslo musí být vyšší než 0.'

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

  4. errorMessage = \"toto má být přeloženo\"

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

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

    Pro import Strings msgstr v monolingválních souborech Objednávka pomocí filtru TXT, použít regex: (?<=msgstr \").*(?=\")

  6. # Note: Toto je poznámka

    Pro Vyloučit řádky začínající # , použít regex: (^[^#].*)

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

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

import JSON

Příklad struktury JSON:

{
"list": {
        "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 každé hodnoty bez ohledu na úroveň, použít: (^|.*/)value

  • pro import pouze jedné hodnoty ze seznamu, použít: list/value

  • pro import hodnoty ze seznamu a/nebo menu, použít operátor | (NEBO): list/value|menu/value

  • pro import pouze prvního výskytu hodnoty z menu, použít: menu\\[1\\]/value

  • pro import obsah JSON pole následujícího po určitém klíči, použít: (^|.*/)array\\[.*\\]

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

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 'translate A' : text

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

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

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

Pravidla segmentace

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

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

Pravidla Nobreak (zkratky atd.) a pravidla Break (konec věty s tečkou atd.) jsou v souborech .SRX.

Příklad

Popis

[\p{C}]

Neviditelný řídicí znak.

[\p{Z}]

Mezera

[\p{Lu}]

Velké písmeno, které má malou variantu.

[\p{N}]

Jakýkoli druh číselného znak.

\\Q ... \\E

Začátek a konec citace - (\\QApprox.\\E). Toto se používá pro zkratky.

\t

Tabulátor

\n

Nový řádek

\u2029

Oddělovač odstavců

\u200B

Space s nulovou šířkou

\u3002

Ideografická tečka

\ufe52

Malá tečka

\uff0e

Tečka s plnou šířkou

\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

Otazník s vykřičníkem

\u2762

Ozdobný tučný vykřičník

\u2763

Ozdobný tučný vykřičník se srdcem

\ufe57

Malý vykřičník

\uff01

Vykřičník s plnou šířkou

`[\\u0080-\\uFFFF]+`

Znaky z rozsahu Unicode \\u0080 až \\uFFFF

`[\u00a8\u00b9\u00c4]+`

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

Běžné vlastní QA kontroly

Kontrola QA

Zdrojový regulární výraz

Cíl regex

Další čísla v cíl

\d 

\d 

Objednávka tagů (nepárové, pro segmenty se 3 tagy).

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

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

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

Objednávka tagů (párové, pro segmenty se 3 tagy).

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

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

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

Space 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}\})

Space 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ý Space 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 bez Space za párovými tagy

((\{[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žít následující regulární výrazy ke kontrole stejného počtu identických desetinných čísel, za použití příslušného jazyk-specifického desetinného oddělovače.

(?<;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.