dポイントプレゼントキャンペーン実施中!

正規表記について「除く」の表記を教えてください。

初心者の基本的な質問で申し訳ないですが、教えてください。

例えば、
<ul>
<li><a hreh="aaa">お菓子:クッキー</a></li>
<li><a hreh="bbb">(飲み物)ヤクルト</a></li>
<li><a hreh="ccc">お菓子:チョコレート</a></li>
<li><a hreh="ddd">おやつ:アイスクリーム</a></li>
</ul>
このようなソースから、(飲み物)を含まないリストのタイトル(お菓子:クッキー、お菓子:チョコレート、おやつ:アイスクリーム)を抽出したいのです。

AとBの間を抽出する、というもともとの仕組みがあって、Bには「</a></li>」を指定し、Aには『<li><a[^>]*?>\(』を除く『<li><a[^>]*?>』を抽出する、という表記がしたいのです。
『<li><a[^>]*?>$[^\(]』と書いてみたのですがうまく動きません。

どのようにするば良いのかご教授をよろしくお願いいたします。

A 回答 (3件)

否定先読みで「(飲み物)」を含まない行を抽出してみるでいかがでしょう。



^<li><a hreh=".*?">(?!.*\(飲み物\))(.*)</a></li>$

正)href 誤)hreh ?

参考URL
http://d.hatena.ne.jp/satosystems/20100519/12742 …
http://ukiya.sakura.ne.jp/index.php?%E6%AD%A3%E8 …
    • good
    • 0
この回答へのお礼

なるほど。
否定先読みで抽出する方法があるんですね。
とても参考になりました。
ありがとうございます。

しかも、<a href="">をミスタッチしてましたね・・・。
お恥ずかしいです。

他にもいろいろなパターンがありますので、参考にやってみたいと思います。
ありがとうございました。

お礼日時:2010/09/05 17:03

正規表現は, それを扱うツールによっていろいろな種類があります.


あなたが使うツールはなんですか?
    • good
    • 0
この回答へのお礼

独自開発したツールで、設定条件には正規表現を使うこと、としか聞いていないのです・・・。
正規表現にも種類があるのですね。
もう少し、いろいろ確認してみようと思います。

ありがとうございました。

お礼日時:2010/09/05 16:56

カッコ以外の1文字を表す正規表現は、[^(] です。




<li><a.*?>[^(].*?</a></li>
    • good
    • 0
この回答へのお礼

ありがとうございます。
「カッコ以外」の表記がまちがっていたのですね。
初歩的ミスです・・・。

勉強になりました。

お礼日時:2010/09/05 16:53

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