電子書籍の厳選無料作品が豊富!

質問させていただきます。

by ***.***.hoge.jp

を正規表現で表すならば、

by\s+(ここに何が入るからわからない).hoge.jp

この()の部分は何が入るのでしょうか?

初めの”by” と 最後の”hoge.jp” は確定で入るのですが、途中の部分は何の文字が来てもいいように正規表現を組みたいです。

何の文字が来てもいい、というような表現方法はありますでしょうか?

A 回答 (2件)

\s+ という表現を知ってるのにそれを知らないって言うのも奇妙な話・・・



.(ドット)が任意の文字なので
.+ なら1文字以上の任意文字列
.* なら0文字以上の任意文字列
になりますよ。
なお、任意文字というのは空白文字も含みますのでそれが意図通りでないのなら適宜適切な表現を使ってください。
細かいことは「perl 正規表現」で検索して調べた方がたぶん速いです。


あとついでに、

.は任意の1文字なので
hoge.jp という正規表現は hogeXjp とかにもマッチしちゃいますよ。
    • good
    • 0

パターンマッチを試行する変数に hoge.jp が by 以降2度以上出現するならば、



(1)by\s(.+?)\.hoge\.jp

一度ならば

(2)by\s(.+)\.hoge\.jp

となります。(1)がおすすめです。

#1の方のご指摘の通り、例えば、foohogeXjp.hoge.jpを排除するために、"."(ドット)の前に、"\"を付けて、陽にドットであると示す必要があると思います。
    • good
    • 0
この回答へのお礼

お二方ともありがとうございます。
おかげでやりたいことができました。

まとめてお礼申し上げます。

お礼日時:2012/12/28 22:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!