文字列のHTMLタグに一致する以下の非常に単純な正規表現があります。私は大文字と小文字を区別しないオプションを設定しているので、タグの大文字と小文字は関係ありません。しかし、 'compiled'オプションが設定されている場合、 'IgnoreCase'オプションは無視されるようです。'コンパイル済み'オプションが指定されている場合、Regex 'Ignore Case'オプションは機能しません
サンプルコード:
string text = "<SPAN>blah</SPAN><span>blah</span>";
Regex expr1 = new Regex("</*span>", RegexOptions.IgnoreCase);
Regex expr2 = new Regex("</*span>", RegexOptions.IgnoreCase & RegexOptions.Compiled);
MatchCollection result1 = expr1 .Matches(text);
//gives 4 matches- <SPAN>,</SPAN>,<span> & </span>
MatchCollection result2 = expr2 .Matches(text);
//only gives 2 matches- <span> & </span>
誰もがここで何が起こっているかのアイデアを持っていますか?
別に質問から、 "'?span>は '" より良い正規表現ではないでしょうか? – Hinek
はい、もう少し考えてみたら、?span>がおそらく良いでしょう。 – John