Помогите с регулярным выражением
От: sinman  
Дата: 20.11.06 13:52
Оценка:
Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'

20.11.06 19:36: Перенесено из 'C/C++'
Re: Помогите с регулярным выражением
От: Константин http://flint-inc.ru/
Дата: 20.11.06 14:02
Оценка:
Здравствуйте, sinman, Вы писали:

S>Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'


class=(['"])[^'"]*\1
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: Помогите с регулярным выражением
От: sc Россия  
Дата: 20.11.06 14:05
Оценка:
Здравствуйте, sinman, Вы писали:

S>Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'


один из вариантов?
".*class=['\"].+['\"].*"
Re[2]: Помогите с регулярным выражением
От: sinman  
Дата: 20.11.06 14:12
Оценка:
Здравствуйте, Константин, Вы писали:

К>Здравствуйте, sinman, Вы писали:


S>>Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'


К>class=(['"])[^'"]*\1

а что значит \1 ?
Re[3]: Помогите с регулярным выражением
От: sc Россия  
Дата: 20.11.06 14:16
Оценка:
Здравствуйте, sinman, Вы писали:

S>Здравствуйте, Константин, Вы писали:


К>>Здравствуйте, sinman, Вы писали:


S>>>Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'


К>>class=(['"])[^'"]*\1

S>а что значит \1 ?
back reference к первой группе, та что в круглых скобках (вроде бы)
Re[4]: Помогите с регулярным выражением
От: sc Россия  
Дата: 20.11.06 14:18
Оценка:
Здравствуйте, sc, Вы писали:

sc>Здравствуйте, sinman, Вы писали:


S>>Здравствуйте, Константин, Вы писали:


К>>>Здравствуйте, sinman, Вы писали:


S>>>>Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'


К>>>class=(['"])[^'"]*\1

S>>а что значит \1 ?
sc>back reference к первой группе, та что в круглых скобках (вроде бы)
дополню: т.е. вместо \1 нужно читать (['"])
Re[2]: Помогите с регулярным выражением
От: HiSH Россия http://m0riarty.ya.ru
Дата: 20.11.06 14:18
Оценка:
Здравствуйте, sc, Вы писали:

sc>Здравствуйте, sinman, Вы писали:


S>>Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'


sc>один из вариантов?

sc>".*class=['\"].+['\"].*"

.*?class=['\"].+?['\"].*

Так, кажется, лучше будет — при жадном соответствии есть шанс сматчиться с такой строкой _полностью_: class="123" blablabla class="345"
Re[5]: Помогите с регулярным выражением
От: Константин http://flint-inc.ru/
Дата: 20.11.06 14:23
Оценка:
Здравствуйте, sc, Вы писали:

К>>>>class=(['"])[^'"]*\1

S>>>а что значит \1 ?
sc>>back reference к первой группе, та что в круглых скобках (вроде бы)
sc>дополню: т.е. вместо \1 нужно читать (['"])

Да, я имел в виду back reference (привык к \1 по EmEditor'у, но, скажем, в Перле это будет $1). Но это вовсе не равнозначно ['"]! Если написать

class=(['"])[^'"]*(['"])

то это может соответствовать, например, class='текст"
В моём же варианте кавычки будут однотипными.
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[3]: Помогите с регулярным выражением
От: sc Россия  
Дата: 20.11.06 14:26
Оценка:
Здравствуйте, HiSH, Вы писали:

HSH>Здравствуйте, sc, Вы писали:


sc>>Здравствуйте, sinman, Вы писали:


S>>>Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'


sc>>один из вариантов?

sc>>".*class=['\"].+['\"].*"

HSH>
HSH>.*?class=['\"].+?['\"].*
HSH>

HSH>Так, кажется, лучше будет — при жадном соответствии есть шанс сматчиться с такой строкой _полностью_: class="123" blablabla class="345"
ну я просто не хотел повторяться)) и написал в chukcha-style, т.е. что вижу то и пишу))
хотя с back reference мне кажется получше (покруче))
Re[6]: Помогите с регулярным выражением
От: sc Россия  
Дата: 20.11.06 14:34
Оценка:
Здравствуйте, Константин, Вы писали:

<skipped>
К>В моём же варианте кавычки будут однотипными.

спасибо, учту на будущее
Re[4]: Помогите с регулярным выражением
От: HiSH Россия http://m0riarty.ya.ru
Дата: 20.11.06 14:45
Оценка:
Здравствуйте, sc, Вы писали:


S>>>>Какое выражение необходимо написать, чтобы найти все подстроки вида class="что нить" или class='что нить'


sc>>>один из вариантов?

sc>>>".*class=['\"].+['\"].*"

HSH>>
HSH>>.*?class=['\"].+?['\"].*
HSH>>

HSH>>Так, кажется, лучше будет — при жадном соответствии есть шанс сматчиться с такой строкой _полностью_: class="123" blablabla class="345"
sc>ну я просто не хотел повторяться)) и написал в chukcha-style, т.е. что вижу то и пишу))
sc>хотя с back reference мне кажется получше (покруче))

Один фиг надо или .*? ставить, или [^\1]* вместо выделенного.
Re[5]: Помогите с регулярным выражением
От: sinman  
Дата: 20.11.06 14:56
Оценка:
всем спасибо, вопрос решен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.