<>の中の文字列だけを抜き取るNo.06309
バク さん 00/08/10 11:16
 

バクと申します。

<>の中の文字列だけを抜き取る。
方法を教えていただきたいのですが・・

職場で販促のため、mailアドレスのdateを作りたいと
相談されました。
で、見たら種々なtex文から
<>の中の文字列だけを抜き取る必要に迫られました。

------このような文字列から-----
aaaa
bbb<a@xx.xx>bbbb
ccccc
dddddd
fffffff
gggggggg<b@xxx.xxx>ggg
-------------------------------
    ↓
------mailアドレスだけを抜き取る----
a@xx.xx
b@xxx.xxx
----------------------------------

全て、行には改行が入っています。
で、今正規表現を勉強しています。
面白くなってきているのですが
自分が求めている、処までは
思考が追いつかず、難儀しています(^^;;
どなたか、教えていただけないでしょうか?
お願いします。 m(__)m      
      

[ ]
RE:06309 <>の中の文字列だけを抜き取るNo.06310
番頭++ さん 00/08/10 12:44
 
> <>の中の文字列だけを抜き取る。

こんな感じです ...

//*1    a1.mac
    gofiletop;  selectall;  copy;   newfile;    paste;  gofiletop;
    replaceallfast "^[^<]+\\n", "", regular;    //  これでいいの !!!
    replaceallfast "^.*<\\f.+\\f>.*$", "\\1", regular;
endmacro;

[ ]
RE:06310 <>の中の文字列だけを抜き取るNo.06311
ENCODINGSHIFTJIS さん 00/08/10 13:42
 
では、 複数のファイルを対象にしてみます。 1行に1アドレスを仮定する
1. 検索->Grepの実行-> 正規表現   <[^>]+>  
2. 検索->置換-> 正規表現: ^[^<]+\f<[^>]+>\f.*     置換:  \1   全置換
\f の位置を動かすと <>内だけが 取り出せる

コマンドなら SGREP 等で 取り出せます。
13:37 D:\sgrep> sgrep.exe '"<"..">"' < g:sgrepman.html
<HTML><HEAD><TITLE></TITLE></HEAD><BODY><HR><H1></H1><HR><H2>
/H2><UL><LI><A HREF="#ss0.2"></A><LI><A HREF="#ss0.3"></A><LI>



[ ]
RE:06311 <>の中の文字列だけ・・"<" と">No.06312
バク さん 00/08/10 16:05
 
ENCODINGSHIFTJISさん。有難う御座います。
コマンドはまだダメなのでやさしい方でやってみました。
 が、・・                           

>では、 複数のファイルを対象にしてみます。 1行に1アドレスを仮定する
>1. 検索->Grepの実行-> 正規表現   <[^>]+>  
>2. 検索->置換-> 正規表現: ^[^<]+\f<[^>]+>\f.*     置換:  \1   全置換
>\f の位置を動かすと <>内だけが 取り出せる

で、実際やったら、
From: ENCODINGSHIFTJIS <xxxxxxxxxx@maruo.co.jp>
From: Hironobu Matsuoka <xxxxxxxx@ace.yasuda-u.ac.jp>
From: "Akira Kumagai" <xxx@kira.to>

↓ 実行結果

<xxxxxxxxxx@maruo.co.jp>
<xxxxxxxx@ace.yasuda-u.ac.jp>
<xxx@kira.to>

"<" と">"は残っているのですが、
>・・・ <>内だけが 取り出せる
<>はとりきれないのでしょうか?
流石に、もう一回置換をかければ、"<" と">"は自分でも
取れますが。

^[^<]+\f<[^>]+>\f.*     置換:  \1
は、<xxx@kira.to>で正解でしょうか?
幼稚な質問で、スミマセン。

[ ]
RE:06312 <>の中の文字列だけ・・"<" と">No.06314
ENCODINGSHIFTJIS さん 00/08/10 17:06
 
^[^<]+\f<[^>]+>\f.*
         Y         Y
^[^<]+<\f[^>]+\f>.*

\f の位置が <> 内に移動してます。 どう?

[ ]
RE:06314 <>の中の文字列だけ・・"<" と">No.06316
バク さん 00/08/10 17:46
 
>^[^<]+\f<[^>]+>\f.*
>         Y         Y
>^[^<]+<\f[^>]+\f>.*
>
>\f の位置が <> 内に移動してます。 どう?

完璧です。 \(^^)/
う〜ん。これgsmeより面白そう。

有難う御座いました。

[ ]
RE:06310 <>の中の文字列だけを抜き取るNo.06317
バク さん 00/08/10 17:51
 
>> <>の中の文字列だけを抜き取る。
>
>こんな感じです ...
>
>//*1    a1.mac
>    gofiletop;  selectall;  copy;   newfile;    paste;  gofiletop;
>    replaceallfast "^[^<]+\\n", "", regular;    //  これでいいの !!!
>    replaceallfast "^.*<\\f.+\\f>.*$", "\\1", regular;
>endmacro;

秀丸のmacroは初めてなのですが
挑戦しました。で、*.macは ShopPaintに関連ずけられて
これを秀丸に関連づけて・・
なんてやっていて、まだ苦戦中です。

でも、これやりたい。
またお聞きするかもしれません。
有難う御座いました。



[ ]
RE:06317 <>の中の文字列だけを抜き取るNo.06319
きいろいまふらあ さん 00/08/10 19:31
 
バクさんこんばんは。
きいろいまふらあといいます。

>秀丸のmacroは初めてなのですが
>挑戦しました。で、*.macは ShopPaintに関連ずけられて
>これを秀丸に関連づけて・・

老婆心ながら。
秀丸のマクロを使うために、*.macを秀丸に関連づける必要は
必ずしもありません。

ま、マクロ自体も秀丸で記述するということで、*.macをダブルクリックすると
自動的に秀丸が立上る、というメリットはありますが、
秀丸のメニューから「ファイル→開く」とか
右クリック→送る→秀丸(インストール時に設定していれば)とか、
秀丸へのショートカットアイコンにファイルをドロップとか
で全く問題ありません。

逆にShopPaintというアプリケーションとの関連づけが損なわれてしまうと
何か不都合があるのではないでしょうか?

健闘を祈ります。

[ ]