正規表現(regexまたはregexpと略されます)は、主にStringsのパターンマッチングや文字列マッチングで使用するための検索パターンを形成する文字のシーケンスです。機能は検索と置換操作と似ていますが、より複雑で具体的であり、定義されたコンテンツを除外する方法としても使用されます。正規表現の詳細な説明と使用される文字の表については、wikipediaエントリーを参照してください。
複数の正規表現を一度に使用するには、それらの間にパイプライン文字|を挿入します。
正規表現は、CAT Editorのフィルタ、検索、置換フィールド、コンテンツ検索機能の原文および訳文フィールド、ファイルインポート設定の機能、およびセグメンテーションルールのカスタマイズで使用できます。コンバータとCAT Desktop EditorはJava正規表現を使用し、CAT Web EditorとTMSの検索はLucene正規表現エンジンを使用します。
注意
PhraseはJava正規表現をサポートしていますが、システムの過負荷を防ぐため、複雑な正規表現は拒否されます。複雑な正規表現とは、他の量指定子(所有格を除く)を含むグループに対して量指定子(所有格を除く)が設定されているものです。
ファイルのインポート時にテキストをタグに変換する場合や、デスクトップエディタでフィルタ、置換機能を使用する場合の正規表現の例:
|
たとえば |
項目 |
|---|---|
|
<[^>]+> |
represents <html_tag> |
|
\{[^\}]+\} |
{variable}を表します、 |
|
\[[^\]]+\] |
[variable]を表します、 |
|
\[\[.+?\]\] |
[[aa[11]bb]]を表します。 |
|
\$[^\$]+\$ |
$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}} コンテンツを翻訳せず、タグに変換します |
|
\{\{[^\}]+\}\} |
{{}}ブラケットの間のテキストを表します |
|
\([^\)]+\) |
()ブラケットの間のテキストを表します |
|
\^[^\^]+\^ |
^マークの間のテキストを表します |
|
\@[^\@]+\@ |
@マークの間のテキストを表します |
|
\^[^\^\?]+\? |
^と?マークの間のテキストを表します |
|
\'[^']+\' |
' ' アポストロフィの間の文字列を表します |
|
\"[^"]+\" |
\"\" 引用符の間の文字列を表します |
|
\%[^\%]+\% |
% 記号の間の文字列を表します |
|
\$\{[^}]*\} |
${ と }, の間の文字列を表します。例: ${変数} |
|
\$[a-zA-Z0-9\-_]+ |
$ で始まる文字列を表します。例: $appName |
|
(?<=\: ").*(?=") |
コロンとスペースの後のダブルクォーテーション内の文字列を表します。例: |
|
(?<=\: ').*(?=') |
コロンとスペースの後のシングルクォーテーション内の文字列を表します。例: |
|
(?<=\=).*(?=) |
等号の後のスペースなしの文字列を表します。例: キー=文字列 |
|
(.*)= |
等号の前の文字列を表します |
|
=(.*) |
等号の後の文字列を表します |
|
\/\/\S* |
ハイパーリンクを表します。また、https:\/\/\\S* |
|
</?mrk[^>]*> |
HTML/XML の開始タグと終了タグ |
備考
TMS 内の TXT ファイルは行ごとに処理されるため、他の環境で仕事をする正規表現が期待通りに機能しない場合があります。
特定のテキストをインポートする際の正規表現の例:
-
## ErrorMessage ##1## The number must be higher than 0. ##Z##
##1## と ##Z## の間のテキストをインポートするには、正規表現
(?<=##1## ).*(?= ##Z##)を使用します。 -
ErrorMessage (\"The number must be higher than 0.\")
(\" and \") の間のテキストをインポートするには、正規表現
(?<=\\(\").*(?=\"\\))を使用します。 -
'errorMessage' = 'The number must be higher than 0.'
= 記号の後、かつ ' and ' の間のテキストをインポートするには、正規表現
(?<=\\= ').*(?=')を使用します。 -
errorMessage = \"this is to be translated\"
= 記号の後、かつ 'and' の間のテキストをインポートするには、正規表現
(?<=\\= \").*(?=\")を使用します。 -
msgstr (\"The number must be higher than 0.\")
TXT フィルタを使用して単言語 PO ファイル内の msgstr Strings をインポートするには、正規表現
(?<=msgstr \").*(?=\")を使用します。 -
# Note: This is a note
# で始まる行を除外するには、正規表現
(^[^#].*)を使用します。 -
values '126', 'DCeT', 'Text (en)'
引用符で囲まれ、かつ (en) を含むテキスト(例: Text (en)')のみをインポートするには、正規表現
(?<=')[^']*\\(en\\)(?=')を使用します。
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 -
一覧やメニューから値をインポートするには、| (OR) 演算子を使用します:
list/value|menu/value -
メニューから値の最初のインスタンスのみをインポートするには、次を使用します:
menu\\[1\\]/value -
特定のキーに続く JSON 配列のコンテンツをインポートするには、次を使用します:
(^|.*/)array\\[.*\\] -
オブジェクトの特定の配列のコンテンツをインポートするには、次を使用します:
(^|.*/)arrays\\[.*\\].*
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
インポート用正規表現:
-
'translate A' のみ :
text -
'translate C' のみ:
categories\\[2\\]/text -
'translate D' のみ:
categories\\[\\d+\\]/content[\\1\\]/text -
all text:
text|categories\[\d+\]/text|categories\[\d+\]/content[\d+\]/text
.SRX ファイルのセグメンテーションルールには、Okapi、Java、Unicode が使用されます。
.SRX ファイルでの正規表現の使用は複雑であり、それらを使用して仕事をする前に、正規表現の使用に関する基本的な知識を持つことが推奨されます。
Nobreak ルール(省略形など)および Break ルール(ドットで終わる文など)は .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 |
全角感嘆符 |
|
`[\u0080-\uFFFF]+` |
Unicode範囲 \\u0080 から \\uFFFF までの文字 |
|
`[\\u00a8\\u00b9\\u00c4]+` |
角括弧内の指定されたUnicode文字の1回以上の出現(例: \\u00a8 + \\u00b9 + \\u00c4) |
|
QAチェック |
原文の正規表現 |
訳文の正規表現 |
|---|---|---|
|
訳文内の追加の数字 |
|
|
|
タグのオーダー(ペアになっていないもの、3つのタグを持つセグメント用) 必要なタグの数に応じて正規表現を調整してください。 |
|
|
|
タグのオーダー(ペア、3つのタグを持つセグメント用)。 必要なタグの数に応じて正規表現を調整してください。 |
|
|
|
タグの前のスペース |
|
|
|
タグの後のスペース |
|
|
|
タグの前にスペースなし |
|
|
|
ペアタグの後の非空白文字 |
|
|
|
角括弧がありません |
|
|
|
丸括弧がありません |
|
|
|
適切な言語固有の小数点記号を使用して、同一の小数値の数が一致しているかを確認するには、以下の正規表現を使用してください。 |
|
|