С учетом следующего HTML:
<tag1>
<tag2 attr2="val2"/>
</tag1>
<tag1>
<tag2
attr2="val2"/>
</tag1>
Я хочу уничтожить все теги2 в этом HTML с помощью одного регулярного выражения в Visual Studio.
Для соответствия первому:
\<tag2.+\/\>
Чтобы соответствовать второму:
\<tag2.*\n.*\/\>
Итак, предположим, что я хочу объединить эти две стратегии, чтобы они соответствовали обеим. Ни один из приведенных ниже не соответствует обоим тегам tag2:
\<tag2.*\/\>
\<tag2[.\n]*\/\>
\<tag2.*\n?.*\/\>
\<tag2[.\r\n]*\/\>
Я получаю:
Первый тег
Не совпадает
Не совпадает
Нет совпадений
Они действительно должны, но кажется, что переменное число новых строк заставляет VS никогда не совпадать. Ошибка?
Это мучает меня в VS2005, VS2008 и VS2010.