WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:perl 特殊な文字列の分割

0:[投稿] HI [2002/08/12 18:27 ][環境:WIN+IE WIN系+Perl]

$hoge = "aaaa bbbb (ccc dd ee) ffff";
こんな感じの文字列があったとして
これをスペースで分割したいのですが
その際、括弧内のスペースでは分割したくないのです。
どんな風にすれば宜しいのでしょうか?

宜しきお願いします。


1:[回答] andi [2002/08/12 19:26 ]

かなり格好悪いですけど、こんな感じとか(^^;

$hoge = "aaaa bbbb (ccc dd ee) ffff (ggg hhh iii) jjj (kkk)";
$hoge =~ s!&!&!g;
1 while $hoge =~ s!\(([^)]*?)\s(.*?)\)!($1 $2)!;

@fuga = split(/\s/,$hoge);
foreach $fuga (@fuga){
    $fuga =~ s! ! !g;
    $fuga =~ s!&!&!g;
}


2:[回答] ween [2002/08/12 20:19 ]

@fuga = $hoge =~ /\([^\)]+\)|[^\x20]+/g;
とかだとどうですか?


3:[完了] HI [2002/08/14 01:24 ]

andiさん>
有り難うございます。上手く行きました。
括弧内のスペースを他の文字に置き換えるのはどう正規表現を組めば良かったのか分からなかったので勉強になりました。

weenさん>
残念ながら上手く分割できませんでした。
何故か値が空になるところが数カ所出来てしまいました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World