Что нового

Удалить строку с определённым элементом

polzavatel

Новичок
Сообщения
50
Репутация
2
Есть html таблица, похожая на это:
х о ххх 1
х о ххх 3
х - ххх 2
х о ххх 4
х - ххх 4
Вопрос, как удалить строки в которых есть "-".(это примерная таблица, на самом деле вместо "-" и "о" есть 2 ссылки на 2 картинки)
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
polzavatel
Ваше творчество лично я ценю, но это никак не может мне помочь понять какая там таблица.
Прошу предоставить html код страницы
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Код:
<table>
<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>
<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>
<TR> <TD>30.11 14:30</TD> <TD><IMG src="2.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>
<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>
<TR> <TD>30.11 14:30</TD> <TD><IMG src="2.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>
<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR></table>

Нужно удалить строки, в которых img src="2.gif"
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
polzavatel
Это не весь код таблицы, нет открывающего и закрывающего тегов. И еще, код нужно помещать в тег, который на панели обозначен иконкой #
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Я не прошу помощи с html, мне нужно просто удалить 2 строки.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
polzavatel
Да я так, для красоты собственно попросил.

Можно так:
Код:
$sHTML='<table>'& _
'<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>'&@LF& _
'<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>'&@LF& _
'<TR> <TD>30.11 14:30</TD> <TD><IMG src="2.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>'&@LF& _
'<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>'&@LF& _
'<TR> <TD>30.11 14:30</TD> <TD><IMG src="2.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>'&@LF& _
'<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR></table>'
ConsoleWrite($sHTML&@LF&@LF)

$sHTML=StringRegExpReplace($sHTML,'(?s).*?<table>(.*?)</table>.*','\1')
ConsoleWrite($sHTML&@LF&@LF)

$aHTML=StringSplit($sHTML,@LF)

$sHTML='<table>'&@LF
For $i=1 To $aHTML[0]
	If Not StringInStr($aHTML[$i],'img src="2.gif"') Then $sHTML&=$aHTML[$i]&@LF
Next
$sHTML&='</table>'
ConsoleWrite($sHTML&@LF)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
polzavatel,
Можно так попробовать.
Код:
$sText = '<table>' & @CRLF & _
		'<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
		'<TR> <TD>30.11 14:31</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
		'<TR> <TD>30.11 14:32</TD> <TD><IMG src="2.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
		'<TR> <TD>30.11 14:33</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
		'<TR> <TD>30.11 14:34</TD> <TD><IMG src="2.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
		'<TR> <TD>30.11 14:35</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
		'</table>'

$sSearch = 'img src="2.gif"'
$sNewText = StringRegExpReplace($sText, '(?im).*(^.*?\Q' & $sSearch & '\E.*?$).*', '')
$sNewText = StringRegExpReplace($sNewText, '(\r\n|\r|\n){2,}', '$1')
ConsoleWrite($sNewText & @LF)
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
polzavatel
Извлечение текста между тегами <table> и </table>, невзирая на перевод строки (?s), и замена всего текста на извлеченный

Вариант madmasles лучше, ИМХО :smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Тема для раздела про регулярные выражения, ИМХО. Переношу.
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
Всем спасибо) Как по мне так понятнее 1 пример)) Про извлечение текста между тегами я догадывался, но (?s) заставило меня сомневаться)
 
Автор
P

polzavatel

Новичок
Сообщения
50
Репутация
2
А можно дополнительный вопрос? Как мне удалить в каждой строке
Код:
<TD>30.11 14:31</TD>
т.е. весь 2-ой столбик
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
polzavatel [?]
Как мне удалить в каждой строке весь 2-ой столбик
Код:
$sText = '<table>' & @CRLF & _
        '<TR> <TD>30.11 14:30</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
        '<TR> <TD>30.11 14:31</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
        '<TR> <TD>30.11 14:32</TD> <TD><IMG src="2.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
        '<TR> <TD>30.11 14:33</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
        '<TR> <TD>30.11 14:34</TD> <TD><IMG src="2.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
        '<TR> <TD>30.11 14:35</TD> <TD><IMG src="1.gif"></TD> <TD>blablabla</TD> <TD>Blablabla</TD></TR>' & @CRLF & _
        '</table>'
	$sRezult=StringRegExpReplace( $sText, '<TD>[\d\.\s:]+</TD>', '' )
	MsgBox(0, "$sRezult", $sRezult)



Добавлено:
Сообщение автоматически объединено:

Или :
Код:
$sRezult=StringRegExpReplace( $sText, '<TD>.+?</TD>\s*(<TD>.+)', '\1' )
 
Верх