3

私はPythonを初めて使用し、ここで質問する必要があると判断する前に、できる限り調査しました。だからここに問題があります:

正規表現で何が間違っているのかわかりません。re.findall() を試してみたかったので、Web ページで電話番号を見つける小さなスクリプトを作成しようと考えました。ここに私が今持っているコードがあります。

    import re, urllib
    inurl = raw_input("Input a URL: ")
    web = urllib.urlopen(inurl)
    web.readlines()

    numbers = re.findall("/\d{3}.\d{3}.\d{4}/g", web)
    for itm in numbers
        print itm

何が起こっているのかわからない。次の行で「予期される文字列またはバッファ」のエラーが発生し続けます

    numbers = re.findall(".....", web)

前もって感謝します。

4

2 に答える 2

3

/\d{3}.\d{3}.\d{4}/g- /../Ruby などの他の言語で正規表現を識別する部分であり、g はフラグであり、Python にも適用されません。それらを削除して、ただ使用してみてください\d{3}.\d{3}.\d{4}

また、web だけでなく、findall で出力/応答を使用したかったと思いますexpected string or buffer。だけの行も削除する必要がありますweb.readlines()

したがって、やりたいことは次のようになります。

numbers = re.findall("\d{3}.\d{3}.\d{4}", web.read())
于 2011-10-11T03:06:22.380 に答える
0
"\d{3}.\d{3}.\d{4}" write raw string r"\d{3}.\d{3}.\d{4}"
于 2011-10-11T05:50:33.157 に答える