重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

エクセルで、HTMLを読み出して、RegExpである文字列を抽出する方法に途方にくれています。"座右の銘"をキーワードにして、"頑固一徹"を抽出したいのですが、私の知識では、太刀打ちできそうにありません。
どなたか詳しい方がいらっしゃいましたらパターンを教えて頂けないでしょうか?
(HTMLの一部のみ抽出で、必ず、</B></FONT><br>が間に挟まれるという条件)
<b>座右の銘</B></FONT><br>頑固一徹<br>
抽出文字の長さは不定で、空白(全角、半角)を含みます。但し、制御コードは含まれません。
"(座右の銘</B></FONT><)+"でキーワードにヒットすることは出来たのですが、"(座右の銘</B></FONT><b)+"と一文字範囲を広げるとマッチしません。なぜでしょうか?
宜しくお願い致します。

A 回答 (2件)

こんばんは。



それと、「+」の意味は分かりますか?意味が分からないで使っているような気がします。

「<b>座右の銘</B></FONT><br>頑固一徹<br>」の場合には、

"(座右の銘</B>).+<br>([^<]+)"

こういうパターンにはなるものの、こんなに簡単なものは出てきませんね。
実際は、自分で考えるしかありませんね。

たとえば、その間に漢字がない場合は、

"(座右の銘</B>)[^一-龝]+([一-龝]+)"

などと工夫が必要です。

抽出は、$2 もしくは、SubMatches(1) です。

RegExp では、表現力が弱いので、InStr やInstrRev などを使わないといけないかもしれません。代用に、Basp21 のタイプライブラリを利用すると良いかもしれません。
http://www.hi-ho.ne.jp/babaq/basp21.html
    • good
    • 0
この回答へのお礼

こんばんわ!!
いつもお世話になっております。
正規表現の本を3冊ぐらい買って勉強中です。仰る通り無理をして正規表現に固執するのはやめて、InStrでの抽出とします。
今回、やろうとしているのは、特定のULRなので、汎用的でなくともかまわないので・・・!!
basp21については、追々勉強していきたいと思います。
ありがとうございました。
今後ともよろしくお願いいたします。

お礼日時:2007/04/14 23:23

こんばんは。



>仰る通り無理をして正規表現に固執するのはやめて、InStrでの抽出とします。

私も、切り出しはInStrで抽出しています。

ここらへんが、Perl との差かなって思います。RegExp は、前置きが長すぎて、Pattern の文字列を、For Each ~ In で、文字列配列をループさせるのですが、それでも、大げさになってしまうような気がします。
    • good
    • 0
この回答へのお礼

本当にありがとうございます。

お礼日時:2007/04/15 10:52

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