Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Egor2014
29 / 8 / 2
Регистрация: 22.10.2013
Сообщений: 373
#1

Регулярным выражением очистить ширину и высоту ячейки таблицы HTML - Visual Basic .NET

26.12.2016, 09:57. Просмотров 321. Ответов 17
Метки нет (Все метки)

Что необходимо в теме поста написано, результатом регулярки столбец справа:
HTML5
1
2
3
4
<td height="122">                       <td>
<td width="636">                        <td>
<td width="636" height="122">           <td>
<td height="51" colspan="3">            <td colspan="3">
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2016, 09:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Регулярным выражением очистить ширину и высоту ячейки таблицы HTML (Visual Basic .NET):

Заменить текст регулярным выражением
Привет всем! Мужики, кто тащит в регулярках, помогите замену сделать. Есть...

Проверка логина регулярным выражением
В задаче нужно проверить логин на соответствие требованиям с использованием...

Вывод предложений регулярным выражением с условиями
Можно ли как-то написать код короче, особенно, где длинная строка с If Если...

Программно задать ширину и высоту графическому объекту
Подскажите как программно задавать ширину и высоту графическом объекту ? На...

Подскажите по парсеру html и регулярным выражением
Ребята, нужна помощь. Впервые пишу парсер и тем более на C#. До этого изучал...

Захват регулярным выражением нескольких значений в html файле
Здравствуйте форумчане. Как захватить несколько значений в html файле вида:...

17
Orlangur1991
1023 / 957 / 226
Регистрация: 28.11.2014
Сообщений: 1,464
26.12.2016, 13:45 #2
Я в регулярках не особо силен, но думаю как-то так
vb.net
1
TextBox2.Text = Regex.Replace(TextBox1.Text, " (height|width)(=" & Chr(34) & ".*?" & Chr(34) & ")", String.Empty)
1
Egor2014
29 / 8 / 2
Регистрация: 22.10.2013
Сообщений: 373
26.12.2016, 20:41  [ТС] #3
Регулярка работает, но удаляет кроме этих тегов и в других, например, в картинках:
HTML5
1
<img src="http://www.cyberforum.ru/images/zvuki-zakreplyayem-01.jpg" width="177" height="135">
Добавлено через 6 часов 45 минут
Вот эта регулярка находит все height и width, но мне нужно только для тега <td
vb.net
1
(?!<td$)\s(height|width)="\d{1,}"
Может кто-то еще сможет подсказать?
0
Bidgo
112 / 106 / 30
Регистрация: 05.04.2014
Сообщений: 217
26.12.2016, 21:01 #4
(<td)+\s(height|width)="\d{1,}"
0
Egor2014
29 / 8 / 2
Регистрация: 22.10.2013
Сообщений: 373
26.12.2016, 21:06  [ТС] #5
Bidgo, работает только для тега <td, но пропускает второе значение, их может быть два, например:
vb.net
1
<td height="122" width="636">
0
Bidgo
112 / 106 / 30
Регистрация: 05.04.2014
Сообщений: 217
26.12.2016, 21:09 #6
Попробуй так.
vb.net
1
(<td)+\s(height|width)="\d{1,}"(\s(height|width)="\d{1,}")?
или так:
vb.net
1
(<td)(+\s(height|width)="\d{1,}")?
0
Egor2014
29 / 8 / 2
Регистрация: 22.10.2013
Сообщений: 373
26.12.2016, 21:13  [ТС] #7
захватывает лишнего тег <td, уф в первом варианте также захватывало
0
Bidgo
112 / 106 / 30
Регистрация: 05.04.2014
Сообщений: 217
26.12.2016, 21:16 #8
так для принадлежности удаляемых height|width к тегу <td, его нужно включать в выражение.
А при замене текста меняй не на пустое значение, а на этот тег "<td"
То есть примерно:
vb.net
1
TextBox2.Text = Regex.Replace(TextBox1.Text, "(<td)(+\s(height|width)=" & Chr(34) & "\d{1,}" & Chr(34) & ")?", "<td")
0
Egor2014
29 / 8 / 2
Регистрация: 22.10.2013
Сообщений: 373
26.12.2016, 21:17  [ТС] #9
прикрепил файл в архиве в нем таблица txt и программа для проверки
0
Вложения
Тип файла: zip Проверка регулярных выражений.zip (87.3 Кб, 6 просмотров)
Bidgo
112 / 106 / 30
Регистрация: 05.04.2014
Сообщений: 217
26.12.2016, 21:24 #10
vb.net
1
(<td)(\s+(height|width)="\d{1,}")+
1
Egor2014
29 / 8 / 2
Регистрация: 22.10.2013
Сообщений: 373
26.12.2016, 21:25  [ТС] #11
Bidgo, Дополнительные сведения: выполняется разбор "(<td)(+\s(height|width)="\d{1,}")?" - Перед квантификатором {x,y} ничего нет.
0
Bidgo
112 / 106 / 30
Регистрация: 05.04.2014
Сообщений: 217
26.12.2016, 21:31 #12
Вроде это то, что надо
vb.net
1
(?<=td)(\s+(height|width)="\d{1,}")+
0
Egor2014
29 / 8 / 2
Регистрация: 22.10.2013
Сообщений: 373
26.12.2016, 21:45  [ТС] #13
Спасибо, все ок!
vb.net
1
2
3
4
        '   Чистим ширину и высоту ячеек
        TextBox3.Text = Regex.Replace(TextBox2.Text, "(?<=td)(\s+(height|width)=""\d{1,}"")+", String.Empty)
        '   Чистим ширину и высоту тега самой таблицы
        TextBox3.Text = Regex.Replace(TextBox3.Text, "(?<=table)(\s+(height|width)=""\d{1,}"")+", String.Empty)
0
Bidgo
112 / 106 / 30
Регистрация: 05.04.2014
Сообщений: 217
26.12.2016, 21:59 #14
Наверное вот так будет более оптимально:
vb.net
1
(?<=<td.*)(\s+(height|width)="\d{1,}")+(?=.*>)
В этом варианте если встречается colspan или любой другой параметр, его место положение не влияет на очистку.
Но между height и width третьего быть не должно.
1
Sklifosofsky
750 / 686 / 171
Регистрация: 29.09.2015
Сообщений: 833
26.12.2016, 22:31 #15
Ох любимые регулярки=)
vb.net
1
Regex.Replace(str, "(?<t1><td)\s?(?:width|height)="".+?""\s?(?<t2>>)", "${t1}${t2}")
Смысл в чем... Каждое вхождение совпадения прособирается из начала и конца тега <td и >
0
Bidgo
112 / 106 / 30
Регистрация: 05.04.2014
Сообщений: 217
26.12.2016, 22:44 #16
Если есть третий параметр, например :
<table colspan="3" height="51" width="77">
то отработает неверно.
0
Emilien
496 / 400 / 233
Регистрация: 07.11.2015
Сообщений: 645
26.12.2016, 23:32 #17
vb.net
1
Regex.Replace(str, "((?:<td|\G(?!\A))[^>]*?)\s(?:width|height)=""\d+""", "$1")
0
Sklifosofsky
750 / 686 / 171
Регистрация: 29.09.2015
Сообщений: 833
26.12.2016, 23:45 #18
Egor2014, опп))) сорян, не обратил внимание что надо что-то сохранить еще в теге
0
26.12.2016, 23:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2016, 23:45
Привет! Вот еще темы с решениями:

Каким регулярным выражением можно разбить html текст в массив по тегам?
Есть, к примеру, такой код: &lt;img src=&quot;image.jpg&quot; /&gt;&lt;p&gt;Об этом впервые...

Определить высоту и ширину ячейки Excel
1) Доброе время суток! Кто-нибудь знает, как получить значение о высоте и...

Как заделать ширину (а не высоту) html'ного списка?
-

с регулярным выражением.
Имеем текст youtube.com/watch?v=LOZuxwVk7TU&amp;ob=av2em нужно получить то что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru