2けた数字の前後を符号で挟みたいNo.07363
石田 さん 14/04/21 09:13
 
東京板橋区の石田と申します。
2ケタの数字を全角・半角を問わず、数字の前後を符号で挟みたいとあれこれ試して
います。

2桁の半角数字 00〜99 の前後を符号で挟む時は、置換ボックス内に
以下を設定し「単語の検索、正規表現」にチェックを入れ「全置換」を実行しました。
・検索文字列 [0-9][0-9]
・置換文字列 ☆\0★
これをマクロ文にして、以下のようにしたら、
replaceallfast "[0-9][0-9]" , "☆\\0★" , regular, word, hilight;
00〜99までの数字が☆00★〜☆99★ となり、99で停まってくれました。
(3桁数字にはマッチせず)

これを応用し、全角2桁数字 00〜99 の前後を符号で挟もうと置換ボックス内に
・検索文字列 [\d0-9][\d0-9]
・置換文字列 ☆\0★
を試してみても、99では停まってくれず、3桁数字にもマッチしてしまい、
、☆10★0 となります。全角2桁数字のみにマッチする検索置換の良い方法は
ないものでしょうか。


[ ]
RE:07363 けた数字の前後を符号で挟みたいNo.07364
K'zawa さん 14/04/21 09:44
 
石田さん、こんにちは。
K'zawaです。

replaceallfast "(?<![\\d0-9])[\\d0-9]{2}(?![\\d0-9])", "☆\\0★" , reg
ular, nohilight;

でいかがでしょうか?

[ ]
RE:07364 けた数字の前後を符号で挟みたいNo.07365
石田 さん 14/04/21 15:26
 
東京板橋区の石田と申します。

K'zawaさん、お返事が遅くなり恐縮です。病院に見舞いに行ってきました。
ご紹介のマクロ文で、全角99迄で停まってくれました。拙作稚拙マクロと以下の
ように組み合わせて使い始めました。

setcompatiblemode 0x20000;
replaceallfast "[0-9][0-9]" , "☆\\0★" , regular, word, hilight;
replaceallfast "(?<![\\d0-9])[\\d0-9]{2}(?![\\d0-9])", "☆\\0★" , reg
ular, nohilight;

前回12月にも「自動インデント解除マクロ」の件でK'zawaさんに助けて貰いました。
insert "\n";
endmacro;
 ところで、秀丸マクロを解説している私設サイトを覗いていたら、「グループ化」
の丸パーレン記号( )は全角にしないとマクロが起動しない・・・という記述を
読んだのですが、半角パーレン記号でも動作します。「全角パーレン説」は
俗説でしょうか?

 ※どうも有り難う御座いました。。

[ ]
RE:07365 けた数字の前後を符号で挟みたいNo.07367
K'zawa さん 14/04/21 17:26
 
石田さん、こんにちは。
K'zawaです。

> ところで、秀丸マクロを解説している私設サイトを覗いていたら、「グループ化」
>の丸パーレン記号( )は全角にしないとマクロが起動しない・・・という記述を
>読んだのですが、半角パーレン記号でも動作します。「全角パーレン説」は
>俗説でしょうか?

これは何のことだかよく分かりません。

[ ]
RE:07367 けた数字の前後を符号で挟みたいNo.07368
石田 さん 14/04/22 20:48
 
東京板橋区の石田と申します。

昨日は有り難う御座いました。
さて、K'zawaさんが紹介されたマクロ文は全角数字・半角数字の両方に対応している
という事を今日になって知りました。

秀丸マクロヘルプにも[\d0-9]は、全角・半角数字の両方に対応しているという記述を
読んだ覚えがありますが、「にわかに信じがたい」と感じ、半角数字処理用のマクロと
全角用の二つが必要になると思い込んでいました。

どうも失礼しました。

[ ]