1

正規表現を使用して、html コードから URL を取得しようとしています。正規表現についてあまり知らないので、うまくいかないので少し混乱しています。これはケースです:

<a href="cotizacion-valor/abengoa/" style="text-decoration:none;color:#006699;">ABG.MC</a>

そして、この正規表現を使用して「abengoa」を取得しようとしています:

".*cotizacion-valor\/(/w+)\/.*"

また、私はpythonを使用しているので、コードは次のとおりです。

regex_companies = ".*cotizacion-valor\/(/w+)\/.*"
match_companies = re.findall(regex_companies, content_web)

私の正規表現の何が悪いのですか? ありがとう

編集:もう1つの質問:

最初の一致のみを取得するにはどうすればよいですか? この href は同じ内容のドキュメントに沿って繰り返されているためです (ただし、異なる内容もあるため、すべてを検索する必要があります)。

4

5 に答える 5

3

の使用/wが正しくありません。\wの代わりに使用する必要があり/wます。

于 2012-07-06T09:32:43.413 に答える
1

パターンは.*、任意の数の任意の文字に一致します(貪欲)。.*?代わりに、可能な限り一致する貪欲でないバージョンを使用してください。また、そうで\wはありません/w

`.*?cotizacion-valor\/(\w+)\/.*?`
于 2012-07-06T09:32:51.247 に答える
0

これを試して

rex = ".*cotizacion-valor\/(?P<param_name>.*?)\/.*"
于 2012-07-06T09:34:13.393 に答える
0

この正規表現を使用する(?<=.*cotizacion-valor/)(\w+)(?=\/.*)

于 2012-07-06T09:34:38.350 に答える
0

これを使用してください:

<a\s+href=\"(?<yourUrl>[^\"])\"

yourUrlという名前のグループを取得します

于 2012-07-06T09:41:34.070 に答える