0

アンカータグからhrefリンクを取得したい。私は使っている

regex = @"<a[^>]*?href\s*=3D\s*[""']?    ([^'"" >]+?)[ '""][^>]*?>". 

href が1行の場合は正常に取得できますが、次の場合は失敗します

Text = <a target=3D"_blank" hr=
ef=3D"http://abc.com/blog/check-your-cars-health-before-going-on-lo=
ng-trip/">

読み取り中のファイルは、HTML ファイルではなく、eml ファイルです 上記の正しい正規表現をお勧めします

4

2 に答える 2

0

説明

この正規表現は次のようになります。

  • アンカータグ内の href 属性値を見つけます
  • いくつかの困難なエッジ ケースを回避する

<a\b(?=\s)(?=(?:[^>=]|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\shr=.*?ef=3D['"]([^"]*)['"]?)(?:[^>=]|='[^']*'|="[^"]*"|=[^'"\s]*)*"\s?\/?>.*?<\/a>

ここに画像の説明を入力

サンプルテキスト

onmouseover の難しいエッジ ケースに注意してください

<a onmouseover=' href="NotTheHrefYoureLookingFor" ; funRotator(href) ; ' target=3D"_blank" href="http://abc.com/blog/check-your-cars-health-before-going-on-lo= ng-trip/">link text </a>

キャプチャ グループ

[0] => <a onmouseover=' href=" hr=
ef=3D NotTheHrefYoureLookingFor" ; funRotator(href) ; ' target=3D"_blank" hr=
ef=3D"http://abc.com/blog/check-your-cars-health-before-going-on-lo=
ng-trip/">link text
</a>
[1] => http://abc.com/blog/check-your-cars-health-before-going-on-lo=
ng-trip/
于 2013-07-15T13:57:24.667 に答える