私はマッチング機能を書いています、と私は試合の最初のオカレンスだけを返すことができるかどうかを疑問に思っての単一のインスタンスを返します。は、正規表現オブジェクトの内容
def file_match(line, url):
allmatches = re.search(r'<a href="(?P<url>.*?)"', line)
if allmatches and allmatches.groupdict()['url'] == url:
return allmatches.groupdict()['url']
else:
return None
誰もが経験を持っています。ここに私のコードは、私は、単一のマッチを選択しようとする前にこれは...(指定された行のURLのすべてのインスタンスだけでなく、最初に一致している)でありますこの特定の問題? 正規表現オブジェクトを使って '.sub'メソッドを使うことを勧めましたが、このメソッドの引数に何を使用しているのかは分かりません。私はいくつかのことを試しましたが、すべてエラーになります。ここで
は、1(失敗)の一例であるしようとします。
def file_match(line, url):
allmatches = re.search(r'<a href="(?P<url>.*?)"', line)
if allmatches and allmatches.groupdict()['url'] == url:
return re.sub(r'<a href="(?P<url>.*?)"', allmatches, 1)
else:
return None
は私が.search()メソッドを使用しています問題ですか?
アドバイスをいただければ幸いです。
おかげで、 JML
それは、パターンの*すべて*のインスタンスと一致し、それが唯一* 1 *に一致するようにするために、私は希望 - 私は私の質問を更新しました試みを含める。 – jml
「あなたのコードはどのようなものですか?」という意味を明確にしてください。それは動作しないと言っていますか?何を言っているのですか? –
上記のとおり、質問を更新しました。この時点で何が不明なのですか?コードの最初のビットが実行されますが、結果は1行に複数一致します(複数の場合)。 2番手は最初の試合を選別しようとする試合で、どうやってやるのか分からない。 – jml