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

Regexp (TMS)

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

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

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

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

AIチャットボットは、正規表現の生成と検証に非常に効果的です。

Important

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

一般的な例

ファイルのインポート時にテキストを tags に変換し、エディタで検索と置換機能に正規表現を使用する例:

概要

<[^>]+>

represents <html_tag>

\{[^\}]+\}

が{variable}を、

\[[^\]]+\]

が[変数]を、

\[\[.+?\]\]

represents [[aa[11]bb]].

\$[^\$]+\$

represents $operator_Name1$.

\d+

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

[A-Za-z0-9]

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

.+\@.+\..+

email address name@domain.com

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

日付 2018-08-01

\s$

セグメント末尾の空白

^\s

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

\s\s

ダブルスペース

^\d

セグメントの先頭の数字

\w+\s\s\w+

単語間のダブルスペース

\s\n

任意の空白文字の前の改行

\S\n

空白以外の文字の前の改行

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

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

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

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

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

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

TXTインポート

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

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

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

  2. エラーメッセージ("数値は0以上である必要があります")

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

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

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

  4. errorMessage = "this is to be translated"

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

  5. msgstr(「数値は 0 以上である必要があります」)

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

  6. # 備考:これは備考です

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

  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つだけインポートする場合は、 一覧/値を使用

  • 一覧やメニューから値をインポートするには、 | (OR)演算子を使用します。 一覧/値|メニュー/値

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

  • 特定のキーに続く JSON 配列のコンテンツをインポートするには、 (^|.*/)array\[.*\]

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

YAMLインポート

YAMLファイルの例:

タイトル:A
text: translate A
カテゴリ:
  タイトル:B
  text: translate B
カテゴリ:
  タイトル:C
  text: translate C
カテゴリ:
  content:
      タイトル:D
      text: translate D

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

  • only 'translate A' : text

  • only 'translate C': categories\[2\]/text

  • only 'translate D': categories\[\d+\]/content[\1\]/text

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

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

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

.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チェック

原文正規表現

訳文正規表現

訳文の追加の数字

\d 

\d 

tagsオーダー(unpaired、3 tagsのセグメント用)。

必要なtags数に従って正規表現を調整します。

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

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

tagsオーダー(paired、3 tagsのセグメント用)。

必要なtags数に従って正規表現を調整します。

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

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

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

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

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

Paired tags の後の非空白文字

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

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

角カッコの欠落

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

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

丸カッコの欠落

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

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

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

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.