英語文の正規表現No.08820
石田 さん 18/11/13 18:57
 
これまで、和文テキスト中にある英文処理はマウスで範囲選択して、両端を組版ソフ
ト付属の
文字定義符号を利用して文字を挟むマクロでやってきました。html なら、<b>...</b
>な感じです。
手作業の範囲選択から、英文を自動抽出し、その両端を自動で符号を挟むマクロに変
更したいので、
英文の正規表現を試してみましたが、勘違いしている部分も多いと思うのでご指摘下
されば幸いです。

試した例: [a-zA-Z\d\.\,\s-]+ これだと、和文中の数字や、半角スペースにもヒ
ットしてしまいます。

(手作業でやっているときの例)
日本語alphabet日本語 →日本語▲alphabet▼日本語 (三角記号が文字列定義符号)

あまり難しい表現は出てこなくて、以下のような英文で十分間に合うと思います。
日本語Twenty-First Century Fox, Inc.日本語   (21世紀フォックス社 英文社名)

[ ]
RE:08820 英語文の正規表現No.08821
秀丸担当 さん 18/11/14 14:54
 

半角スペースだけや数字だけにはヒットせず、英文にヒットするようにするには、考
え方次第ではありますが、最初の一文字がアルファベットとなるようにするといいと
思います。
例えば以下のようにすると、最初の一文字がアルファベットとなるようになります。

[a-zA-Z][a-zA-Z\d\.\,\s-]*

[ ]
RE:08821 英語文の正規表現No.08822
石田 さん 18/11/15 01:04
 
こんな感じで作ってみました。これで十分な印象です。
数字や半角スペースにはヒットしなくなりました。
あとは、三角記号を組版ソフト専用の符号と差し替えれば英文処理が自動化出来ます。

※ 秀丸担当さん、有り難うございました。感謝します。

selectall;
setcompatiblemode 0x20000;
replaceallfast "[a-zA-Z][a-zA-Z\\d\\.\\,\\s-]*" , "▲\\0▼" , regular , hili
ght;
  gofiletop;
endmacro;

(例文)
日本語Twenty-First Century Fox, Inc.日本語 (21世紀フォックス社 英文社名)
秀丸Editorは日本の老舗Editorです。

(マクロ実行結果)
日本語▲Twenty-First Century Fox, Inc.▼日本語 (21世紀フォックス社 英文社名)
秀丸▲Editor▼は日本の老舗▲Editor▼です。

[ ]
RE:08822 英語文の正規表現No.08823
石田 さん 18/11/15 02:52
 
//replaceallclickでは、より高速動作します。
selectall;
setcompatiblemode 0x20000;
//replaceallfast "[a-zA-Z][a-zA-Z\\d\\.\\,\\s-]*" , "▲\\0▼" , regular , hi
light;
replaceallquick "[a-zA-Z][a-zA-Z\\d\\.\\,\\s-]*" , "▲\\0▼" , regular , hil
ight;
endmacro;

[ ]
RE:08820 英語文の正規表現No.08825
石田 さん 18/11/15 13:47
 
08823番、08824番は不正確でしたので消去しました。


[ ]