インポートユーティリティ

Regexp (TMS)

本コンテンツはPhrase Language AIの機械翻訳により、英語から翻訳されています。

正規表現(regex または regexp と略記)は、主に文字列とのパターンマッチングや文字列マッチングで使用される検索パターンを形成する文字のシーケンスです。機能は、より複雑で具体性の高い検索および置換操作や、定義されたコンテンツを除外する方法に似ています。正規表現の詳細な説明と使用文字数の表については、Wikipediaのエントリを参照してください。

複数の正規表現を同時に使用するには、その間にパイプライン文字 | を挿入します。

正規表現は、CAT desktop editor のフィルタ、検索、置換機能、コンテンツ検索機能の原文フィールドと訳文フィールド、ファイルインポート設定タグに変換機能、およびセグメンテーションルールのカスタマイズに使用できます。

重要

PhraseはJava正規表現をサポートしますが、過負荷からシステムを守るために複雑な正規表現を拒否します。複雑な正規表現は、他の量化子(所有格を除く)を含むグループに量化子(所有格を除く)を含む正規表現です。

一般的な例

ファイルのインポート時にテキストをタグに変換し、エディタで正規表現を使用して検索および置換機能を使用する例を示します。

説明

<[^>]+>

represents <html_tag>

\{[^\}]+\}

は{variable}を表します。

\[[^\]]+\]

は[変数]を表します。

\[\[.+?\]\]

は [[aa[11]bb]] を表します。

\$[^\$]+\$

は$operator_Name1$を表します。

\d+

は数字を表します。また、[0-9]+

[A-Za-z0-9]

は任意の英数字を表します。

.+\@.+\..+

email address name@domain.com

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

the date 2018-08-01

\s$

セグメントの末尾に空白文字

^\s

セグメントの先頭に空白文字

\s\s

二重の空白

^\d

セグメントの先頭の数字

\w+\s\s\w+

単語間のダブルスペース

\s\n

改行の前に空白文字がある場合

\S\n

改行の前に空白以外の文字がある場合

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

はphp変数とhtmlコードを変換します ($svariable['name'] =)

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

は、JavaScriptのフィールドキーを行頭に空白文字を追加して変換します ( 'key' : )

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

は{{text here}}の{{text here}}コンテンツを翻訳せず、タグに変換します

TXTインポート

特定のテキストをインポートする際の正規表現の例:

  1. ## エラーメッセージ ##1## 数値は0以上である必要があります。 ##Z##

    ##1## から ##Z## までのテキストをインポートするには、正規表現を使用します (?<=##1## ).*(?= ##Z##)

  2. ErrorMessage ("The number must be higher than 0")

    (" と ") の間のテキストをインポートするには、正規表現を使用します。 (?<=\().*(?="\))

  3. 'errorMessage' = '数値は0以上である必要があります。'

    = 記号の後、' と ' の間のテキストをインポートするには、正規表現を使用します: (?<=\= ').*(?=')

  4. errorMessage = "this is to be translated"

    = 記号の後、「」「」の間のテキストをインポートするには、正規表現を使用します: (?<=\=)。*(?=)

  5. msgstr ("The number must be higher than 0")

    TXT フィルタを使用してモノリンガル PO ファイルの msgstr 文字列をインポートするには、正規表現を使用します。 (?<=msgstr).*(?=")

  6. # 備考:This is note

    # で始まる行を除外するには、正規表現を使用します: (^[^#].*)

  7. 値 '126'、 'DCeT'、 'Text (en)'

    Text (en)' のように引用符で囲まれ、(en) を含むテキストのみをインポートするには、正規表現を使用します: (?<=')[^']*\(en\)(?=')

JSONインポート

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"         }    ]}
  • レベルに関係なくすべての値をインポートする場合は、(^|.*/)value を使用します。

  • リストから値を1つだけインポートする場合は、list/valueを使用します。

  • リストまたはメニューから値をインポートするには、 |(または)演算子を使用します: list/value|menu/value

  • メニューから値の最初のインスタンスのみをインポートする場合は、 menu\[1\]/value を使用します。

  • 特定のキーに続く JSON 配列の内容をインポートするには、(^|.*/)array\[.*\] を使用します。

  • 特定のオブジェクト配列の内容をインポートするには、(^|.*/)arrays\[.*\].*

YAMLインポート

YAMLフライの例:

title:A
text: translate A
categories:
  title:B
  text: translate B
categories:
  title:C
  text: translate C
categories:
  コンテンツ:
      title:D
      text: translate D

インポートする正規表現:

  • only 'translate A' : text

  • '翻訳C'のみ: カテゴリ\[2\]/テキスト

  • '翻訳D'のみ: categories\[\d+\]/content[\1\]/text

  • すべてのテキスト: text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text

セグメンテーションルール

.SRXファイルのセグメンテーションルールには、OkapiJavaUnicodeが使用されます。

.SRXファイルで正規表現を使用するのは複雑です。正規表現を使用する前に、基本的な知識を身に付けることをお勧めします。

.SRXファイルには、ノーブレークルール(略語など)とブレークルール(ピリオドで文の終わりなど)があります。

説明

[\p{C}]

不可視の制御文字。

[\p{Z}]

ホワイトスペース

[\p{Lu}]

小文字のバリエーションを持つ大文字。

[\p{N}]

任意の種類の数字。

\Q ... \E

引用符の最初と最後 - (\QApprox.\E)。これは略語に使用されます。

\t

タブ

\n

改行

\u2029

段落区切り

\u200B

ゼロ幅スペース

\u3002

漢字完全停止

\ufe52

小型フルストップ

\uff0e

全角フルストップ

\uff61

半角漢字フルストップ

\ufe56

小疑問符

\uff1f

全角疑問符

\u203c

二重感嘆符

\u2048

疑問符

\u2762

重い感嘆符の飾り

\u2763

重いハートの感嘆符のオーナメント

\ufe57

小さな感嘆符

\uff01

全角感嘆符

一般的なカスタムQAチェック

QAチェック

原文の正規表現

Target Regexp

訳文の追加数字

\d

\d

タグ順 (ペアなし)

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

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

タグ順 (ペアなし)

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

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

タグ順 (ペアなし)

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

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

タグ順 (ペア)

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*$

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*$

タグ順 (ペア)

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*\{3\&gt;.*\&lt;3\}.*$

^.*\{1\&gt;.*\&lt;1\}.*\{2\&gt;.*\&lt;2\}.*\{3\&gt;.*\&lt;3\}.*$

タグの前のスペース

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

タグの後のスペース

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

タグの前にスペースがありません

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

角括弧の欠落

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

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

丸括弧の欠落

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

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

この記事は役に立ちましたか?

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.