正規表現について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
super

正規表現について

#1

投稿記事 by super » 8年前

サイトのソース内に下記のようなソースがあります。
<meta property="og:description" content="正規表現勉強中!"/>

上記の”正規表現勉強中!”と書いてあるところを取得したいです。そこには日本語だけでなく、カタカナ、数字、漢字などすべてを含みます。

私が考えた正規表現は

<meta property="og:description" content="((?:.|\n)+)"/>

上記のものなのですが、日本語が適切に表示されず、<meta property="og:description" content="以降のものをすべて含んでしまいます。


” <meta property="og:description" content=" ” この文字列の後ろにあるものを取得したいです。

naohiro19
記事: 256
登録日時: 13年前
住所: 愛知県

Re: 正規表現について

#2

投稿記事 by naohiro19 » 8年前

"はエスケープ文字ですので\"とかかないといけません。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 正規表現について

#3

投稿記事 by みけCAT » 8年前

条件にある最短の繰り返しにマッチさせるには、+のかわりに+?を使うといいかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: 正規表現について

#4

投稿記事 by YuO » 8年前

XML (XHTML) 前提であるなら,正規表現

コード:

<meta property="og:description" content="([^"]*)"/>
という方法があるかと思います。
XML中で属性値が"で終わるので,"以外の文字のみ含む,という考え方です。
# 属性値としての"は"になるので,"は存在しないとして取り扱える。

super

Re: 正規表現について

#5

投稿記事 by super » 8年前

naohiro19さんみけCATさんYuOさん回答ありがとうございます。
返信遅れてしまいすいません。

試してみましたが、できませんでした。


”<meta property="og:description" content="([^"]*)"/>”この正規表現を実行して結果下記のようになり、タイトルが取れていませんでした。

['<meta property="og:description" content="']

タイトルが日本語だから表示されない、など関係あるのでしょうか?

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: 正規表現について

#6

投稿記事 by YuO » 8年前

super さんが書きました:試してみましたが、できませんでした。
”<meta property="og:description" content="([^"]*)"/>”この正規表現を実行して結果下記のようになり、タイトルが取れていませんでした。
['<meta property="og:description" content="']
タイトルが日本語だから表示されない、など関係あるのでしょうか?
そもそも,結果がこのようになることはない (「"/>」というリテラルで終わる正規表現なので,マッチしたならば必ずこの文字列で終わる) のですが,どのように確認したのでしょうか。
putwsやstd::wcoutなどを使って出力しているのにロケール設定をしていない,などということはないでしょうか。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 正規表現について

#7

投稿記事 by みけCAT » 8年前

super さんが書きました:タイトルが日本語だから表示されない、など関係あるのでしょうか?
そう思うなら、まずタイトルが英数字だけのデータを入力してテストし、問題を切り分けるといいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

super

Re: 正規表現について

#8

投稿記事 by super » 8年前

Python

コード:

import re
twittitle = re.search('<meta property="og:description" content="([^"]*)"/>',html)
print twittitle.group()
このようなコードです。日本語は関係ありませんでした。

super

Re: 正規表現について

#9

投稿記事 by super » 8年前

私の手違いで違うディレクトリの同じ名前のファイルを実行していました。
本当にすいません。
目指していた通りにタイトルを取得できました。
たくさんのご回答ありがとうございました。

super

Re: 正規表現について

#10

投稿記事 by super » 8年前

すいません。
日本語は取得できているのですが、
関係ないところの日本語を取得していて、タイトルが取得できていませんでした。

閉鎖

“C言語何でも質問掲示板” へ戻る