正規表現の使い方と一致する例
- 正規表現の使い方と、一致する例について解説します。
- 指定した正規表現と一致するURLの例を紹介します。
- Perlの正規表現の書式と、一致するURLのパターンについて詳しく説明します。
- ベストアンサー
正規表現
すみません。先輩の作ったPerlソースを机上で追っています。 Perlの実行環境がないので、よく動きが理解できないところが 多々あります。その中でも正規表現がどうにも理解できません。 以下の正規表現 ^http://([^/]*[.-])?(abc|efg?|hij|xxx)[.-] の場合、以下の例だと一致するのはどれになりますでしょうか? http://hij.com/ http://aahij.com/ http://hijaa.com/ http://aahijaa.com/ http://aa-hij.com/ http://hij-aa.com/ http://aa-hij-aa.com/ http://www.hij.com/ http://www.aa-hij.com/ http://www.hij-aa.com/ http://www.aa-hij-aa.com/ http://www.aahij.com/ http://www.hijaa.com/ http://www.aahijaa.com/ http://www.zzz.com/hij.html http://www.zzz.com/aa-hij.html http://www.zzz.com/hij-aa.html http://www.zzz.com/aa-hij-aa.html http://www.zzz.com/aahij.html http://www.zzz.com/hijaa.html http://www.zzz.com/aahijaa.html 簡単な解説も頂けると助かります。宜しくお願いします。
- coogon21
- お礼率83% (55/66)
- Perl
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
理解したいなら、動作確認は自分でできるようになったほうが良いと思いますよ。 以下、判定プログラムです。 while (<DATA>) { my $url = $_; print $url; if ( $url =~ '^http://([?^/]*[.-])?(abc|efg?|hij|xxx)[.-]' ) { print qq| OK\n|; } else { print qq| NG\n|; } } __DATA__ http://hij.com/ http://aahij.com/ http://hijaa.com/ http://aahijaa.com/ http://aa-hij.com/ http://hij-aa.com/ http://aa-hij-aa.com/ http://www.hij.com/ http://www.aa-hij.com/ http://www.hij-aa.com/ http://www.aa-hij-aa.com/ http://www.aahij.com/ http://www.hijaa.com/ http://www.aahijaa.com/ http://www.zzz.com/hij.html http://www.zzz.com/aa-hij.html http://www.zzz.com/hij-aa.html http://www.zzz.com/aa-hij-aa.html http://www.zzz.com/aahij.html http://www.zzz.com/hijaa.html http://www.zzz.com/aahijaa.html 結果では、 http://hij.com/ http://hij-aa.com/ がOKとなります。
関連するQ&A
- 秀丸で正規表現を使って置換
あるファイルに関して、このような置換を行いたいです。 abc/xxx,yyy,zzz.html ↓ abc/xxx.html xxxとyyyとzzzはある任意の文字列(英数字で文字数はばらばら)で 「abc/」と「,」と「.html」は固定の文字列になります。 そこで、秀丸で開いて、正規表現による検索で、 「abc/.*,.*,.*.html」 として検索すると、該当部分が検索できることがわかりましたが、置換後をどのように設定すればいいのかわかりません。 置換後のabc/xxx.htmlの「xxx.html」の部分は検索前の任意の文字列をそのまま残したいのです。 秀丸の置換機能でこのようなことは可能でしょうか? 正規表現に関してあまり詳しくないので教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- perlの正規表現で...
perlの正規表現で... abc (123) abc(123) からabcだけを取り出したいのですが、どのような正規表現になりますでしょうか? よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- 正規表現で括弧にマッチさせたいのですが・
Javaで正規表現を使おうとしてるのですがうまく行きません。 次のようにマッチさせたいです。 マッチさせたい文字列 : (abc)and(efg) マッチする文字列 : abcとefg マッチさせたい文字列 : (abc(efg)) マッチする文字列 : abc(efg) もしくは abc(efg)とefg とのようにまっちさせたいです。上の方はできたのですが、下の方がabc(efgとマッチしてまうのです。 いい方法を教えてください><お願いします。
- 締切済み
- その他(プログラミング・開発)
- VBS 正規表現の記号
VBSで、一行単位で行読込みを行いましたが、特定の箇所を抜き出しがうまく出来ません。 例えば、行読込みにて下記一行が読み込まれた場合 abc "efg" abcの後の"~"の間、efgを抜き出したい場合、正規表現としてどのようになるのか、何方かご教授ください。
- ベストアンサー
- その他(プログラミング・開発)
- 正規表現教えてください。
正規表現を教えてください。 YYYYMMDD_aa._aa_bbb.txt とあったとき YYYYMMDDは日付をあらわし, aa._aaはサーバ名をあらわして bbb.txtはファイル名をあらわすとき YYYYMMDD aa._aa bbb 値は変化するものでYYYYMMDD_サーバ名_fail.txtは変わらないとした時 それぞれをあらわすperlでの正規表現を教えてください。 まとめてあらわすのではなく、ひとつずつを表す方法でお願いします。
- 締切済み
- Perl
- VBSで正規表現キーワード複数は?
すみません、VBSの正規表現で改行をまたぐ検索をしたいのですが キーワードが複数の場合はどう書けばいいのでしょうか? 例:xxxxxabcxxxxxxxx改行 xxxxxefgxxxxxxxxxxx改行 xxxxxxLxxxx xは不定期文字 キーワード abc , efg , L .*abc[^efg][^L]*efg*L.*とやってもだめでした。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- C#での文字抜き出し正規表現について
C#にて、ファイルパスの中間部分だけを取り出す方法を考えておりますが、苦慮しております。 「C:\xxx\yyy\zzz.exe」の「yyy」だけ取り出す正規表現を教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- 正規表現を教えてください。
YYYYMMDD_aa._aa_bbb.txt とあったとき YYYYMMDDは日付をあらわし, aa._aaはサーバ名をあらわして bbb.txtはファイル名をあらわすとき YYYYMMDD aa._aa bbb 値は変化するものでYYYYMMDD_サーバ名_fail.txtは変わらないとした時 それぞれあらわすperlでの正規表現を教えてください。
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現ですが・・・
正規表現なんですが(Perlです。) Aa_abcd_aa.txt Aa_abcd_bb.txt Aa_abcd_cc.txt Bb_abcd.txt 上記のabcdの部分をマッチさせるために (?<=Aa_|Bb_).*(?=_aa|_bb|_cc|\.txt) としてみましたが、これでは Aa_abcd_aa.txt Aa_abcd_bb.txt Aa_abcd_cc.txt のabcd_aaやabcd_bbやabcd_ccとマッチしてしまいます。 なにかよい表現の仕方はありますか? まとめてマッチさせる表現が知りたいです。
- ベストアンサー
- その他([技術者向] コンピューター)
お礼
atom_seedさま 確認ソースの添付までありがとうございました。 良い機会なので自分のPCにperlが動く環境も 作ってみようと思います。