正規表現で、00で始まる画像をgrep検索したいのですが、どう書けばよいでしょうか?
ネットで調べてやってみたところ、下記のような感じになったのですが、もう少しスマートな書き方をするには、どうすればよいでしょうか?
00+.+.+(?=jpg)
これだと、例えば「004-main.jpg」だけではなく、「400-thumbs.jpg」なども検索されてしまいます。
■探したい対象の中身の例(明示的な規則性はありません)
900.jpg
<img src="images/400_300_1.jpg" alt="正規表現分からない" width="400" height="300" border="0">400_300_2.jpg<a href="#" target="_blank"></a> 002_main.jpg <br />005.jpg<br /> 006_thumb.jpg
■また、行の先頭にマッチするという「^」について知りたいのですが、行頭というのは何を持って 行頭と見做されるのでしょうか? 改行の後の文字=行頭ということなのでしょうか?
■例えば、下記のような中から、005-main.jpgを検索しようとする場合、必ず<br />の後に005-main.jpgがくる、みたいな法則性がないと、いわゆる単語単位での切り取りみたいなのは出来ないのでしょうか?
<br />005-main.jpg<br />
No.2ベストアンサー
- 回答日時:
grepもいろいろ種類があって、使える正規表現が違うものがある(正規表現が使えない紛い物まで存在する!)ので、一番基本的な正規表現だけで書くとこんな感じでしょうか。
[>/"] *00[^.]*\.[jJ][pP][gG]
この式の弱点は、行頭にあるものは見つけられないことです。また、HTMLタグの中に書かれていないものもダメです。
で、行頭ですが、文頭を除いて改行の次で合っています。改行しかない行(空行)は、行頭であると同時に行末でもあるという扱いになり、^$という式で表せます。
余談ながら、grepの場合は検索だけなので問題にならないのですが、sedやawk,perlなどのテキスト処理言語やエディタなどの置換できるツールで、行頭や行末を加工した場合は話がややこしくなります。なぜなら新たな行頭や行末が発生してしまうため、これをどう扱うのかという話になるからです。正しくは、行頭や行末に対する置換は一度しか行われないことですが、これを正しく実装できていないエディタもあるので、注意が必要です(特に行頭)。
ご回答ありがとうございました。
また、アドバイスもいただき、ありがとうございました。
>grepもいろいろ種類があって、使える正規表現が違うものがある(正規表現が使えない紛い物まで存在する!
>行頭や行末に対する置換は一度しか行われないことですが、これを正しく実装できていないエディタもあるので、注意が必要です(特に行頭)。
実はツールとエディタと双方で試していて、処理結果が微妙に違うのにも悩んでました。
大変勉強になりましたー!
No.1
- 回答日時:
正規表現はプログラムによって異なります. したがって, ものによっては「プログラムA では使うことができるがプログラムB では使えない」こともあります. また状況によって解釈が変わることもあります.
ということで, 書籍を紹介するにとどめておこう.
参考URL:http://www.oreilly.co.jp/books/9784873113593/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- Perl 画像が表示でnull; this.src 1 2022/04/19 11:31
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS 角丸画像の背景色を透明にしたいです 1 2023/06/23 23:15
- Excel(エクセル) Excel 毎日手作業で時間がかかって、泣きたいです、、、VBAのプロの方、助けてください。。。 3 2022/10/25 04:26
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現 秀丸エディタ 行頭か...
-
正規表現でカウントアップ(?)す...
-
[VBS] テキストファイルから任...
-
MFCで正規表現
-
文章中全ての半角カッコ ( の...
-
メールアドレスの正規表現について
-
[正規表現] 数字範囲をヒット...
-
Javaのpatternの正規表現で解読...
-
URLを正規表現に変換したい
-
正規表現でAND検索はできる...
-
vbaの正規表現で、マッチした一...
-
時間の正規表現
-
wordの何も書かれていない2ペー...
-
PS4コントローラーをPCでゲーム...
-
AIに回答させるって
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
Chr(13)とChr(10)の違いは?
-
VBAでの Replace関数で、ワイル...
-
Excelで3E8を3.00E+8にしない方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaの正規表現で、マッチした一...
-
正規表現 秀丸エディタ 行頭か...
-
正規表現でシングルクォーテー...
-
[VBS] テキストファイルから任...
-
メールアドレスの正規表現について
-
正規表現でAND検索はできる...
-
Perl 数値にスラッシュを入れる...
-
[正規表現] 数字範囲をヒット...
-
正規表現です。括弧内にある複...
-
C言語のコメントを「正規表現」...
-
文章中全ての半角カッコ ( の...
-
C言語にパターンマッチってない...
-
grepの正規表現での最短マッチ...
-
正規表現で囲まれた部分の文字列
-
正規表現
-
さくらエディタでGrep検索する...
-
正規表現
-
時間の正規表現
-
正規表現を使って文字列をコピー
-
正規表現で、青空文庫形式の入...
おすすめ情報