Em uma string, gostaria de substituir qualquer ocorrência de:
<br /><br /><br /> (or more)
com:
<br /><br />
Isso funcionou para substituir 2 ou mais ocorrências consecutivas da letra e por um asterisco:
Dim strInput As String = "Thee brown fox jumped over the lazy dog."
Label1.Text = Regex.Replace(strInput, "e{2,}", "*")
Dando:
Th* brown fox jumped over the lazy dog.
Esses regex não funcionaram para substituir duas ou mais ocorrências consecutivas de quebras de HTML por um asterisco:
Dim strInput As String = "Thee <br /><br /><br /> brown fox jumped over the lazy dog."
Label1.Text = Regex.Replace(strInput, "\b<br />{2,}\b", "*")
Label1.Text = Regex.Replace(strInput, "\b<br />\b{2,}", "*")
Label1.Text = Regex.Replace(strInput, "\b<br />\b {2,}", "*")
Alguém pode fornecer uma sintaxe que funcione?
(Eu poderia trocar temporariamente todas as ocorrências de quebras de HTML na string por, digamos [HTML-Linebreak] antes de executar o código, se isso fosse mais fácil. Então eu poderia substituí-las novamente depois.)
Experimente, funcionou comigo:
Regex.Replace(strInput, "(<br\s*/?>\s*){3,}", "<br /><br />")
Label1.Text = Regex.Replace(strInput, "(<br\s*/?>\s*){2,}", "<br /><br />")
tag, inclusive aquelas sem barra e com diferentes padrões de espaços em branco, tornando-a mais flexível.
tags para exatamente duas, garantindo uma saída HTML mais limpa.