Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.33.153] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Есть некий текст: Цитата text block 1 {delim1} text block2 wwqdsqwdq {delim2} textblock3 И есть руглярка: Цитата {(.*?)} Нужно выбрать всё, что не соотвествует ей. Как? |
Сообщ.
#2
,
|
|
|
Погуглил. Есть подозрение что это проще запрограммить чем писать регулярку, что и сделал пока )))
Но тема актуально. Возможно это будет более быстрый способ. |
Сообщ.
#3
,
|
|
|
Регвыры, помимо прочего, могут возвращать позицию найденного вхождения. Следовательно, можно легко определить границы ненужных участков строки и вырезать из нее все нужное.
|
Сообщ.
#4
,
|
|
|
Цитата HardRock @ Раз уж задача обратная, то и использовать функцию надо другую, а не replaceНужно выбрать всё, что не соотвествует ей. Как? Например в php есть preg_split... Это я так глянул на обозначение delim1 и delim2 и предположил, что текст надо дробить... |
Сообщ.
#5
,
|
|
|
Мне на самом деле для С++ =) В той библиотеке, которую юзаю, нет preg_split.
Текст нужно дробить - все верно. Только разделители описываются регуляркой значительно более сложной чем в первом посте. Вобщем пожалуй оставлю как есть - с получением позиций разделителей и последующим "ручным" разьиением строки. А то похоже нельзя вытащить одной регуляркой типа "получить все подходящие куски". |
Сообщ.
#6
,
|
|
|
Цитата HardRock @ Может там обычный сплит поддерживает регулярки?В той библиотеке, которую юзаю, нет preg_split Бывает и такое |