リンクは明確に定義された正規表現であるべきではありませんか? これはかなり理論的な質問ですが、
私は2番目のPEZの答え:
HTML は正規言語ではないため、「明確に定義された」正規表現には向いていないと思います。
私の知る限り、どの HTML タグにもネストされたタグをいくつでも含めることができます。例えば:
<a href="http://stackoverflow.com">stackoverflow</a>
<a href="http://stackoverflow.com"><i>stackoverflow</i></a>
<a href="http://stackoverflow.com"><b><i>stackoverflow</i></b></a>
...
したがって、原則として、タグを適切に照合するには、少なくとも次の形式の文字列を照合できる必要があります。
BE
BBEE
BBBEEE
...
BBBBBBBBBBEEEEEEEEEE
...
ここで、B はタグの開始を意味し、E は終了を意味します。つまり、任意の数の B の後に同数の E が続く文字列と一致する必要があります。そのためには、マッチャーが「カウント」できる必要がありますが、正規表現 (つまり、有限状態オートマトン) ではそれができません (カウントするには、オートマトンに少なくとも 1 つのスタックが必要です)。PEZ の回答を参照すると、HTML は文脈自由文法であり、通常の言語ではありません。