В строке я хотел бы заменить любые вхождения:
<br /><br /><br /> (or more)
с:
<br /><br />
Это сработало для замены двух или более последовательных вхождений буквы е звездочкой:
Dim strInput As String = "Thee brown fox jumped over the lazy dog."
Label1.Text = Regex.Replace(strInput, "e{2,}", "*")
Предоставление:
Th* brown fox jumped over the lazy dog.
Эти регулярные выражения не помогли заменить два или более последовательных вхождения разрывов HTML звездочкой:
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,}", "*")
Может ли кто-нибудь дать синтаксис, который будет работать?
(Я мог бы временно заменить все вхождения HTML-разрывов в строке, скажем, [HTML-Linebreak] перед выполнением кода, если бы это было проще. Затем я мог бы заменить их обратно.)
Для меня совершенно не очевидно, как нынешняя цель обмана решает этот вопрос. Я бы пометил @-тегом Виктора, чтобы спросить, но похоже, что SO автоматически находит кого-то только в том случае, если он уже оставил комментарий.
Попробуйте, у меня сработало: Regex.Replace(strInput, "(<br\s*/?>\s*){3,}", "<br /><br />")
Dim strInput As String = "Thee <br /><br /><br /><br /><br /><br /> brown fox jumped over the lazy dog."
Console.WriteLine(Regex.Replace(strInput, "(<br\s*/?>\s*){3,}", "<br /><br />"))
Это сработало. Большое спасибо.
Label1.Text = Regex.Replace(strInput, "(<br\s*/?>\s*){2,}", "<br /><br />")
О, {2,} тоже была хорошей идеей для нормализации вывода. Спасибо.
В
.../>{2,}\b
и...\b {2,}
квантор ({2,}
) применяется к>
и пространству соответственно. Вам необходимо заключить в скобки часть регулярного выражения, которую необходимо повторить, как показано в ответах @TranQuocBao и @SamPaulIsaac.