Visual Studio 2010, Visual Basic.NET
У меня есть форма, которая загружает html файл в элемент управления WebBrowser. Затем пользователь может выполнить поиск слова или фразы внутри этого html-документа. Мне нужно отменить innerHtml, потому что мне нужно иметь возможность добавлять тег span к тому, что пользователь искал. Очень простой материал. Проблема, с которой я сталкиваюсь, заключается в том, когда пользователь ищет что-то, у которого есть дополнительное пространство.
Теперь моя проблема в том, что пользователь ищет "a. Тестирование", он ничего не находит. Фактический html файл имеет два пробела между a. и тестирование вместо одного. Элемент управления браузера достаточно умен, чтобы удалить лишнее пространство, когда он отображает html для пользователя.
Я надеюсь в этом есть смысл. Вот мой поисковый код.
searchString = txtSearch.Text
textToSearch = wbSearch.Document.Body.InnerHtml
textToSearch = textToSearch.Replace(searchString, "<span style=""background-color:yellow"">" & searchString & "</span>")
wbSearch.Document.Body.InnerHtml = textToSearch
Существует и другая часть текста, которая терпит неудачу, если пользователь ее ищет.
Скажем, пользователь копирует и вставляет часть текста в текстовое поле поиска, текст, который они копируют, - это "тестирование для служб".
Кажется достаточно простым, но в самом html файле есть "тестирование для сервисов </a>". поэтому поиск не может найти его, потому что пользовательская строка отличается от того, что находится в html.
Это звучит как хороший кандидат на регулярные выражения. У меня возникло ощущение, что у вас может возникнуть проблема, если ваш HTML-код содержит неразрывный searching for services
пространства searching for services
Вы можете сделать замену
с пробелом перед выполнением вашего RegEx.
Как игнорировать пробелы в строке строки регулярного выражения?