私はいつもこのような正規表現を書いてきました
<A HREF="([^"]*)" TARGET="_blank">([^<]*)</A>
しかし、私はこの怠惰なことについて学び、このように書くことができることを知りました
<A HREF="(.*?)" TARGET="_blank">(.*?)</A>
この2番目のアプローチを使用することに不利な点はありますか? 正規表現は間違いなくよりコンパクトです(SOでもより適切に解析されます)。
編集:ここには2つの最良の答えがあり、式の2つの重要な違いを指摘しています。ysthの答えは、貪欲でない/怠惰なものの弱点を指摘しており、ハイパーリンク自体にAタグの他の属性が含まれる可能性があります(間違いなく良くありません)。Rob Kennedy は貪欲な例の弱点を指摘しています。アンカー テキストには他のタグを含めることはできません (すべてのアンカー テキストを取得するわけではないため、間違いなく問題ありません)。同じように見える遅延ソリューションと非遅延ソリューションは、おそらく意味的に同等ではありません。
編集:3番目に良い答えは、式の相対速度に関するAlan Mによるものです。当分の間、私は彼をベストアンサーとしてマークし、人々が彼により多くのポイントを与えるようにします:)