の間の文字列を検索するための正規表現私はHTMLファイルいただきました>と<
...<b>Breakfast</b><hr>...
を持って、私は>
と<
との間にあるBreakfast
をしたいです。
私はどちらか>Breakfast<
を与えていない
...for test_string in line:
if re.match(r'(>.*<$)',test_string):...
を試してみました。
ありがとうございます。
の間の文字列を検索するための正規表現私はHTMLファイルいただきました>と<
...<b>Breakfast</b><hr>...
を持って、私は>
と<
との間にあるBreakfast
をしたいです。
私はどちらか>Breakfast<
を与えていない
...for test_string in line:
if re.match(r'(>.*<$)',test_string):...
を試してみました。
ありがとうございます。
$
は「入力の終了」を意味し、この正規表現には属しません。
代わりに、次の手順を実行します。
m = re.search(r'>([^<]*)<', test_string)
if m:
print m.group(1)
これは、>
を検索<
ではありません、すべての次の文字、そして<
。文字が>
と<
は、私はあなたがしたいと思うあなたはm.group(1)
'[^ <]'の+1、 – Cameron
このユースケースでは、 '[^ <] * <'は '。*?<'よりもどのように優れていますか?確かに、それらは内部的に同じコードに変換されます。 – kindall
@kindall、まったく同じではありませんhttp://pastebin.com/Lp3axWWC – reclosedev
を使用して取得しグループとしてマークされているビトウィーンズ:
r'(>.*?<)'
それとも
r'<b(>.*?<)/b>'
非欲張りや試合であります文字列の真ん中。 parsing HTML with regular expressionsは非常に堅牢ではないことに注意してください。
一般に、正規表現はhtmlを解析できません。代わりにhtmlパーサを使用することができます:
from BeautifulSoup import BeautifulSoup # pip install BeautifulSoup
html = """...<b>Breakfast</b><hr>..."""
soup = BeautifulSoup(html)
print soup(text=True) # get all text
# -> [u'...', u'Breakfast', u'...']
print [b.text for b in soup('b')] # get all text for <b> tags
# -> [u'Breakfast']
なぜ '$'をインクルードしましたか? – Cameron
[""](http://stackoverflow.com/questions/3066328/whats-the-regular-expression-for-finding-string-between)の間の文字列を検索するための正規表現とは何ですか? –
次のようなものです:http://www.crummy.com/software/BeautifulSoup/ –