Я пытаюсь справиться с накладными расходами на автоматическое именование серверных элементов управления ASP.NET. У меня есть страница, которая содержит 7000 строк HTML, отрисованных из сотен вложенных элементов управления ASP.NET, многие из которых имеют атрибуты id / name длиной в сотни символов.
В идеале я бы хотел что-то, что извлекало бы каждое значение атрибута HTML, начинающееся с «ctl00», в список. Функция поиска регулярного выражения в Notepad ++ была бы идеальной, если бы я только знал, каким должно быть регулярное выражение?
Например, если HTML-код:
<input name = "ctl00 $ Header $ Search $ Keywords" type = "text" maxlength = "50" class = "search" />
Я бы хотел, чтобы результат был примерно таким:
name = "ctl00 $ Header $ Search $ Keywords"
Более расширенный поиск также может включать имя элемента (например, тип элемента управления):
input | name = "ctl00 $ Header $ Search $ Keywords"
Чтобы справиться с атрибутами Id и Name, я просто перезапущу поиск, ища Id вместо Name (т.е. мне не нужно что-то, что будет искать оба одновременно).
Конечным результатом будет отчет Excel, в котором перечислено количество серверных элементов управления на странице и длина имени каждого из них, возможно, отсортированные по типу элемента управления.





Быстро и грязно:
Искать
\w+\s*=\s*"ctl00[^"]*"
Это будет соответствовать любому тексту, который выглядит как атрибут, например name = "ctl00test" или attr = "ctl00longer text". Он не будет проверять, действительно ли это происходит в теге HTML - это немного сложнее и, возможно, ненужно? Он также не будет проверять наличие экранированных кавычек в имени тега. Как обычно с регулярными выражениями, требуемая сложность зависит от того, что именно вы хотите сопоставить и как выглядит ваш ввод ...
«7000»? «Сотни»? О, Боже.
Поскольку вы просто просматриваете исходный текст в текстовом редакторе, попробуйте следующее ... / (id | name) = "ct [^"] * "/
Предлагаю xpath, как в этом вопрос
XPath? На HTML-странице? Поскольку он заявил, что у нее 7000 строк и сотни элементов управления, как вы думаете, каковы шансы, что страница будет совместима с XHTML? О нуле?
вы также можете использовать xpath в html, вы можете настроить парсер, чтобы не выполнять строгую проверку документа
Отвечая на мой собственный вопрос, проще всего сделать это с помощью BeautifulSoup, парсера Python для «грязного HTML», слоганом которого является:
«Вы не писали эту ужасную страницу. Вы просто пытаетесь извлечь из нее какие-то данные. Прямо сейчас вам все равно, как должен выглядеть HTML. И этот синтаксический анализатор тоже».
Это работает, и это доступно отсюда - http://crummy.com/software/BeautifulSoup
То же. ааааааааааааа и место для проверки.