Import nástrojů

Regexp (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 posloupnost znaků, které tvoří vzor vyhledávání, zejména proto, aby se použily při přiřazování vzorů se Strings nebo přiřazování řetězců. Funkce je podobná jako operace najít a nahradit složitější a specifičtější 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 |.

Regexpy lze použít ve filtrovat, vyhledat a nahradit pole v desktopovém editoru CAT, v polích zdroje a cíle funkce Hledat obsah, pro funkci Převést na tagy v nastavení importu souborů a pro úpravy pravidel segmentace.

Tip

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

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

Důležité

Phrase podporuje Java regexp, ale nevrátí složité regulární výrazy, aby ochránil systém před přetížením. Komplexní regexpy jsou ty s kvantifikátory (kromě přivlastňovacích) ve skupinách, které obsahují jiné kvantifikátory (kromě přivlastňovacích).

Obecné příklady

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 adresa name@domain.com

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

datum 2018-08-01

\s$

mezeru na konci segmentu

^\s

mezeru na začátku segmentu

\s\s

dvojitý bílý znak

^\d

číslice na začátku segmentu

\w+\s\s\w+

dvojitou mezeru mezi slovy

\s\n

nový řádek před kterým je libovolný znak bílého znaku

\S\n

nový řádek před kterým je libovolný 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řeloží obsah {{text here}} '{{text here}} a převede ho na tagy

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

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 v rozmezí ^ až ? značek

\'[^']+\'

představuje text mezi ‚‘ apostrofy

\"[^"]+\"

představuje text mezi „“ uvozovkami

\%[^\%]+\%

představuje text v rozmezí % symbolů

\$\{[^}]*\}

představuje text v rozmezí ${ až }, např. ${variable}

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

představuje řetězec začínající $, např. $appName

(?&lt;=\: ").*(?=")

představuje text uvnitř dvojitých uvozovek po dvojtečce a Space, např. hodnota v řetězci "klíč": "hodnota"

(?&lt;=\: ').*(?=')

představuje text v jednoduchých uvozovkách po dvojtečce a Space, např. JohnDoe v uživateli řetězce: 'JohnDoe'

(?&lt;=\=).*(?=)

představuje text po znaménku rovná se a bez Space, např. klíč=hodnota

(.*)=

představuje text před znakem rovná se

[^=]*$

představuje text po znaménku rovná se

\/\/\S*

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

</?mrk[^&gt;]*>

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

\b[\p{Lu}]+\b

představuje celá slova velkým písmenem

Import textu

Poznámka

Jelikož se soubory TXT v TMS zpracovávají řádek po řádku, nemusejí některé regulární výrazy zakázky v jiném prostředí fungovat podle očekávání.

Příklady regulárních výrazů při importu určitého textu:

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

    Pro import textu mezi ##1## a ##Z## ,použijte regulární výraz: (?<=##1## ).*(?= ##Z##)

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

    Pro import textu mezi (" a ") použijte regulární výraz: (?<=\(").*(?="\))

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

    Pro import textu po znaménku = a mezi ' a ' použijte regulární výraz: (?<=\= ').*(?=')

  4. errorMessage = „tohle se má přeložit

    Pro import textu po znaménku = a mezi ‚a‘ použijte regulární výraz: (?<=\= ").*(?=")

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

    Pro import msgstr Strings v jednojazyčných souborech Objednávky pomocí filtru TXT použijte regulární výraz: (?<=msgstr ").*(?=")

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

    Chcete-li vyloučit řádky začínající na # , použijte regulární výraz: (^[^#].*)

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

    Pro import pouze textu v uvozovkách a s (cs), jako například Text (cs)' použijte regulární výraz: (?<=')[^']*\(cs\)(?=')

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": „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 následujícího po určitém klíči použijte: (^|.*/)array\[.*\]

  • k importu obsahu určitého pole objektů použijte: (^|.*/)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

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

  • all text: text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text

Segmentační pravidla

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

Použití regexpu v souborech .SRX je složité a před zakázkou s nimi doporučujeme použít základní znalost regulárních výrazů.

Pravidla bez přerušení (Zkratky apod.) a pravidla bez přerušení (Konec věty s tečkou atd.) jsou v souborech .SRX.

Příklad

Popis

[\p{C}]

Neviditelný řídicí znak.

[\p{Z}]

Whitespace

[\p{Lu}]

Velké písmeno obsahující malé písmeno.

[\p{N}]

Jakýkoli druh číselného znaku.

\Q... \E

Začátek a konec cenové nabídky - (\QPřibl.\E). Používá se 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 za plnou šířkou

\uff61

Ideografická tečka za polovinou šířky

\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ý 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 v celé šířce

`[\u0080-\uFFFF]+`

Znaky z rozsahu Unicode \u0080 až \uFFFF

`[\u00a8\u00b9\u00c4]+`

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

Společné vlastní QA kontroly

Kontrola QA

Regexp - zdrojový text

Regexp - cílový text

Další čísla v cíli

\d 

\d 

objednávka tags (nepárové, pro segmenty se 3 tags).

Upravte regexp podle požadovaného počtu tags.

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

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

objednávka tags (párové, pro segmenty se 3 tags).

Upravte regexp podle požadovaného počtu tags.

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

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

Mezery před tags

\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 tags

(\{[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 tags

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

Nebílé znaky po párových tags

((\{[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

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

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

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.