質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

2回答

736閲覧

正規表現教えてください

humuhimi

総合スコア49

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2019/06/13 08:35

'GDP値 ': ' 3,285億<ref name', 'GDP/人 ': ' 39,634<ref name', '建国形態 ': ' 独立', '建国年月日 ': ' 1955年7月27日', '通貨 ': ' ユーロ (&#8364;)', '通貨コード ': ' EUR', '通貨追記 ': ' <ref>1999年以前の通貨はオーストリア・シリング。</ref><ref>オーストリアのユーロ硬貨も参照。</ref>', '時間帯 ': ' +1', '夏時間 ': ' +2', 'ISO 3166-1 ': ' AT / AUT', 'ccTLD ': ' .at', '国際電話番号 ': ' 43', '注記 ': ' <references />'

上記の<ref>,</ref>,<ref,<references />'を削除したいです(削除プログラムは作成済み)。

現在適当に作った正規表現はこんな感じですがうまくいきません。

python

1 pattern28_2 = "|\</?ref\>?" 2 pattern28_3 = "|</?{[a-z]{2,12}?/?>?|redirect" 3 pattern28_4 = "|<references />|redirect" 4 pattern28_ = "|\</?ref\w{0,6}/>"

どなたか答えを教えてください...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

<([^>]*>|ref.+) はどうでしょうか。
タグまたは <ref 以降の文字列にマッチします。

python

1d = { 2 "GDP値 ": " 3,285億<ref name", 3 "GDP/人 ": " 39,634<ref name", 4 "建国形態 ": " 独立", 5 "建国年月日 ": " 1955年7月27日", 6 "通貨 ": " ユーロ (&#8364;)", 7 "通貨コード ": " EUR", 8 "通貨追記 ": " <ref>1999年以前の通貨はオーストリア・シリング。</ref><ref>オーストリアのユーロ硬貨も参照。</ref>", 9 "時間帯 ": " +1", 10 "夏時間 ": " +2", 11 "ISO 3166-1 ": " AT / AUT", 12 "ccTLD ": " .at", 13 "国際電話番号 ": " 43", 14 "注記 ": " <references />", 15} 16 17import re 18 19for key, value in d.items(): 20 d[key] = re.sub(r"<([^>]*>|ref.+)", "", value.strip()) 21 22from pprint import pprint 23pprint(d)
{'GDP/人 ': '39,634', 'GDP値 ': '3,285億', 'ISO 3166-1 ': 'AT / AUT', 'ccTLD ': '.at', '国際電話番号 ': '43', '夏時間 ': '+2', '建国年月日 ': '1955年7月27日', '建国形態 ': '独立', '時間帯 ': '+1', '注記 ': '', '通貨 ': 'ユーロ (&#8364;)', '通貨コード ': 'EUR', '通貨追記 ': '1999年以前の通貨はオーストリア・シリング。オーストリアのユーロ硬貨も参照。'}

投稿2019/06/13 09:50

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

humuhimi

2019/06/14 01:14

簡潔でわかりやすかったです。ありがとうございました
guest

0

<ref から'の手前 or <ref> or </ref> or <references />にマッチします。

Python

1pattern = "<ref [^']*|</?ref>|<references />"

投稿2019/06/13 10:48

.Y_Y.

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

humuhimi

2019/06/14 01:13

ちゃんと動きました。ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問