log.+?\.txt

log10-09-15.txt log100915.txt

94 :名無しさん@お腹いっぱい。:2009/04/12(日) 20:36:12 ID:uUJHCTROO
○山○男 北海道札幌市中央区歓楽街5-8 寒い
○沢○香 千葉県市川市工業地帯5-5 普通
○井○美 東京都杉並区高級住宅街5-5-4 普通
○江○郎 大阪府大阪浪速区商店街3-5 普通
○島○恵 岡山県倉敷市美観地3-5-2 暖かい
○木○介 沖縄県沖縄市保養地4-6 暑い

↑のデータを↓のようにしたいと思います。

○山○男 北海道札幌市中央区 寒い
○沢○香 千葉県市 普通
○井○美 東京都杉並区 普通
○江○郎 大阪府大阪市浪速区 普通
○島○恵 岡山県倉敷市 暖かい
○木○介 沖縄県沖縄市 暑い

2番目の項目である住所欄の最初に出てくる「市」「郡」より後ろを切り取りた
いと思います
ただし、住所欄に「区」が含まれる「市」は、最初の「区」より後を切り捨てま
す。
これを秀丸で実現するにはどのようにしたらよいですか?

・上記の空白はタブです
・市川市や郡山市などの例外は考えないものとします
・やり方はこだわっておらず、正規表現でもマクロでもかまいません
・WinXP 秀丸のバージョンは6.14を使っております

96 :名無しさん@お腹いっぱい。:2009/04/12(日) 21:41:58 ID:I08O25VAP
正規表現による置換

検索:\t(.+)(区|市|郡)([^区市郡]+\t)
置換:\t\1\2\t


97 :名無しさん@お腹いっぱい。:2009/04/12(日) 22:10:12 ID:PThKQFb30
それって「区・市・郡のうち最後に登場する文字」までを残す置換であって

94の要望とは違うんじゃね?

> ○沢○香 千葉県市川市工業地帯5-5 普通

> ○沢○香 千葉県市 普通

という置換結果例と

> ・市川市や郡山市などの例外は考えないものとします

という注釈を併せ読むと、「残し過ぎよりは削り過ぎを優先」という方針のように読めるのだが。

○山○男 北海道札幌市中央区市川町0-0 寒い

に適用すると

○山○男 北海道札幌市中央区市 寒い

になってしまうが(>>94は「北海道札幌市中央区」となるよう期待しているのでは)。

98 :名無しさん@お腹いっぱい。:2009/04/12(日) 22:33:50 ID:PThKQFb30
検索:\t(.*?郡|.*?市.*?区|.*?市|.*?区).*\t
置換:\t\1\t

どんな例外的な市名・郡名等が存在して想定外の置換を引き起こすか、は知らない。

99 :名無しさん@お腹いっぱい。:2009/04/12(日) 22:37:34 ID:ifyaAgf/0
gofileend; insert "\n区"; gofiletop; ##result = true;

while( ##result == true ){

searchdown "\\t" , regular, nocasesense;
right;

##search_x = x; ##search_y = y;

searchdown "区" , noregular, nocasesense;
if( ! result ){ ##result = eof; break; }

if(##search_y != y){
moveto ##search_x,##search_y;
searchdown "(市|郡)" , regular, nocasesense;
}
right; beginsel; right;

searchdown "\\t" , regular, nocasesense;

delete; golinetop; down;

##result = result;
}

if(##result == eof){ gofileend; deleteline; backspace; }

>>94
一応、要望通りのマクロになったとは思うけどエラーチェックとか細かい要望とかは自分でやってくれ

100 :名無しさん@お腹いっぱい。:2009/04/12(日) 23:13:11 ID:p/vLE8b+0
行の後から市郡区あたりを検索して、タブまでを削除する、
という操作をキーの記録と再生で、目視で確認しながら消すのが確実かつ早そうだけどなあ。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年10月13日 15:07