powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / RegExp + выбрать список тэгов
19 сообщений из 19, страница 1 из 1
RegExp + выбрать список тэгов
    #34770514
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть кусок HTML-а (условный)

<tr ...>
<td id="A_1">gfdfd</td>
<td id="B_1">gfdfd</td>
<td id="C_1">1</td>
</tr>

<tr ...>
<td id="A_2">gfdfd</td>
<td id="B_2">gfdfd</td>
<td id="C_2">2</td>
</tr>

<tr ...>
<td id="A_3">gfdfd</td>
<td id="B_3">gfdfd</td>
<td id="C_3">3</td>
</tr>
....................

нужно получить все <TD> (только значения у id) у которых в id присутствует С_ (может быть с " ' или без)
и при этом значение(innerHTML) должно быть >= числа N



и ещё вопрос
если нужно добавочно не брать те <TD> у которых id не равно заранее определённым значениям

как такое реализовать через регулярные выражения


Спасибо
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34770521
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не дописал
это нужно реализовать на JavaScript-е
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34770527
Andrej Falaleev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обязательно regexp? а xpath никак?
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34770528
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xpath думаю что нет
это html а не XHTML
может быть не валидным
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34770753
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34770791
Фотография alexzander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
a='';
a="<tr id='234'>";
a+="<td id='A_1'>gfdfd</td>";

a+="<td id='B_1'>gfdfd</td>";
a+="<td id='C_1'>1</td>";
a+="</tr>";

a+="<tr ...>";
a+="<td id='A_2'>gfdfd</td>";
a+="<td id='B_2'>gfdfd</td>";
a+="<td id='C_2'>2</td>";
a+="</tr>";

a+="<tr ...>";
a+="<td id='A_3'>gfdfd</td>";
a+="<td id='B_3'>gfdfd</td>";
a+="<td id='C_3'>3</td>";
a+="</tr>";


re=/<td id=['|"]?(C_\d+)['|"]?>(\d)+<\/td>/g ;


arr=a.match(re);

//WScript.echo(v1+"\n"+v2);
WScript.echo(arr);
тут, правда, в массив выбираюцца <td id='C....'>...</td> можно по массиву, теперь, пробежаться.
щазз посмотрю еще дальше..
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34770944
Фотография alexzander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
a='';
a="<tr id='234'>";
a+="<td id='A_1'>gfdfd</td>";
a+="<td id='B_1'>gfdfd</td>";
a+="<td id='C_1'>1</td>";
a+="</tr>";
a+="<tr ...>";
a+="<td id='A_2'>gfdfd</td>";
a+="<td id='B_2'>gfdfd</td>";
a+="<td id='C_2'>2</td>";
a+="</tr>";
a+="<tr ...>";
a+="<td id='A_3'>gfdfd</td>";
a+="<td id='B_3'>gfdfd</td>";
a+="<td id='C_3'>3</td>";
a+="</tr>";

re=/<td id=['|"]?(C_\d+)['|"]?>(\d)+<\/td>/g ;

arr=a.match(re);

WScript.echo("==-->"+arr+"\n"+arr.length);
for(i=0;i<arr.length;i++){
    aa=arr[i];
    arr[i].match(re);
    if(RegExp.$2>=2) WScript.echo(">>>"+arr[i]+"\n\n"+RegExp.$1+" -- "+RegExp.$2);
}
как сделать одним регекспом, как в перле, - не нашел. (
если есть - подскажите и мне, плиз ))
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34771945
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
идею понял
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34772033
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если регулярное выражение
представленно в виде текста
как внести в текст и " и '


var Z="C_"
var reg=new RegExp('<td.*?id=(тут или " или ' или ничего)(' + Z + '.*?)(тут или " или ' или ничего).*?>','ig') ;
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34772388
Фотография alexzander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael Rа если регулярное выражение
представленно в виде текста
как внести в текст и " и '
var Z="C_"
var reg=new RegExp('<td.*?id=(тут или " или ' или ничего)(' + Z + '.*?)(тут или " или ' или ничего).*?>','ig') ;
['|"]? = "одинарная или двойная кавычка ноль или один раз"

в регекспе это есть
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34772452
Фотография alexzander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
/<td id=['|"]?(C_\d+)['|"]?>(\d)+<\/td>/g ;
/ -ограничитель регекспа
<td id= - прямая подстановка.буквосочетание
['|"]? - альтернатива [<это> | <или это>] ? - ноль или один раз
(C_\d+) группировка () поиск сочетания С_ за которым идут несколько \d цифр (одна и более)
['|"]? -альтернатива
> -просто закрытая уловая скобка
(\d)+ - несколько цифр (одна и более)
<\/td> - просто <\/td>, где / вот это экранируется. потомучно оно использ как ограничитель регекспа
/ -ограничитель регекспа
g - модификатор. "жадный" поиск. ищет все вхождения. (очень грубо говоря).
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34772453
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё разобрался
Спасибо
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34772471
ambarka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
['|"]?
предлагаю | не использовать, смысла нет. ведь [...] - это ОДИН символ из указанных.
просто ['"]?
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34772537
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет не выходит

у меня так

var Z="C_" //меняется
var reg=new RegExp('<td .*?id=['+ "'" +'|"]?(' + Z + '.*?)[' + "'" + '|"]? ','ig') ;
var d=document.body.innerHTML
var m=d.match(reg)

хочу получить в цикле то что в (' + Z + '.*?) c \d+ не работает
то есть значение id без " или без ' в RegExp.$1
самое интересное в разных браузерах результат разный
в IE Mozilla результат как надо а в Opera тащит всё C_1" ...>..</td>

как это исправить
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34774780
Фотография alexzander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael Rнет не выходит

у меня так

var Z="C_" //меняется
var reg=new RegExp('<td .*?id=['+ "'" +'|"]?(' + Z + '.*?)[' + "'" + '|"]? ','ig') ;
var d=document.body.innerHTML
var m=d.match(reg)

хочу получить в цикле то что в (' + Z + '.*?) c \d+ не работает
то есть значение id без " или без ' в RegExp.$1
самое интересное в разных браузерах результат разный
в IE Mozilla результат как надо а в Opera тащит всё C_1" ...>..</td>

как это исправить
во-первЫх = комбинация .* - самая жадная. она "хавает" весь твой текст. ))) т.е. она возьмет
от первого вхождения <td и до последнего id=
та-же самая ситуация и в (' + Z + '.*? ).
во-вторых:символ \d+ работает, просто в var reg=new RegExp('... его надо экранироватьеще раз \\d+ .вот
в-третьих: var reg=new RegExp('<td .*?id=['+ "'" +'|"]?(' + Z + '.*?)[' + "'" + '|"]?вот тут вот пробел ','ig') ;
в конце регулярки у тебя затесался пробел вроде, и в случае, если закрывающая угловая >
идет сразу после кавычки " , то условие выполнено не будет.
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34774788
Фотография alexzander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тренировался просто яваскриптом, не из-под браузера. )
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34775104
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо

попробую ещё раз
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34775419
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня ещё вопросик
а если в id есть не только цифры (\\d)
а например "-" а потом цифры (символы)
как заменить выражение
...
Рейтинг: 0 / 0
RegExp + выбрать список тэгов
    #34780836
Фотография alexzander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael Rу меня ещё вопросик
а если в id есть не только цифры (\\d)
а например "-" а потом цифры (символы)
как заменить выражение
ну \d*-?\d+
\d* - ноль и больше цифр
-? - тире , 0 или 1 раз
\d+ - цифры, лдна и больше

вроде так...
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / RegExp + выбрать список тэгов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]