0

ファイル内の行に条件付き処理を適用しようとしています (以下のデモ目的でリスト内のリスト値によって記号化されています) 。 endswith(x)x が range であるメソッドで正規表現関数を使用したいと考えていますpage-[1-100])

import re
lines = ['http://test.com','http://test.com/page-1','http://test.com/page-2']
for line in lines:
    if line.startswith('http') and line.endswith('page-2'):
        print line

したがって、必要な機能は、値がhttp範囲内のページで始まり、そのページで終わる場合、1-100それが返されることです。

編集: これを熟考した後、必然的な質問は次のとおりだと思います。

  • page-[1-100]正規表現パターン、つまり変数 を作成するにはどうすればよいですか?
  • x次に、この変数をどのように使用しますかendswith(x)

編集:

これは元の質問に対する回答ではありません (つまり、 and を使用していませんstartswith()) endswith()。これに問題があるかどうかはわかりませんが、これが私が使用した解決策です (同じ機能を達成したため):

import re
lines = ['http://test.com','http://test.com/page-1','http://test.com/page-100']
for line in lines:
    match_beg = re.search( r'^http://', line)
    match_both = re.search( r'^http://.*page-(?:[1-9]|[1-9]\d|100)$', line)
    if match_beg and not match_both:
        print match_beg.group()
    elif match_beg and match_both:
        print match_both.group()
4

2 に答える 2