• 締切済み

正規表現(置換え)について

置換え前 ***.**.**.** 置換え後 ***/**/**.** 上記のように、一部の『.』を『/』へ置き換え処理をするには どのような正規表現になりますか? 宜しくお願い致します。

みんなの回答

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.4

#1です。#2,3のかたが既に回答していますので、それで十分ですが、以下のようにします。 2つ以上の.がある時、前から2つの.を/に変えます。 # 先頭から2つ以内の.を/にする $data = '*****.***.***.****.****'; $data =~ s#(\.)(.*?)(\.)#/$2/#; print $data;

unipre
質問者

お礼

勉強になりました。 ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

$data='***.**.**.**'; $data=~s|(.+?)(\.)(.+?)(\.)(.*)|\1/\3/\5|; print $data; とか?

unipre
質問者

お礼

候補の一つにします。 ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

単純に $data='***.**.**.**'; $data=~s|\.|/|; $data=~s|\.|/|; print $data; ではだめですか

unipre
質問者

お礼

候補の一つにします。 ありがとうございました。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

>一部の『.』を『/』へ置き換え処理 「一部の『.』」についての定義は何でしょうか。 先頭から2つ以内の『.』でしょうか。 それとも、4桁目、7桁目の『.』でしょうか。 一部の『.』について、もう少し、正確に提示していただけませんでしょうか。

unipre
質問者

補足

先頭から2つ以内の『.』という定義でお願いします。

関連するQ&A