Регулярное выражение. Запрет подстроки между двумя строками
От: hellas Россия  
Дата: 21.09.08 04:33
Оценка:
Помогите составить выражение.

Надо найти строку, ограниченную aaa слева и bbb справа. Причем между границами не должно быть сочетания xyz
Если бы не должно было быть одного символа, то я бы написал
/aaa[^x]*bbb/
Но как написать это с точной подстрокой посередине.
Подозреваю, что нужен просмотр вперед, но не получается его правильно воткнуть
This software required Windows 95 or better...
So I installed Linux
perl re regexp perlre
Re: Регулярное выражение. Запрет подстроки между двумя строк
От: zaro  
Дата: 21.09.08 07:50
Оценка:
Здравствуйте, hellas, Вы писали:

H>Надо найти строку, ограниченную aaa слева и bbb справа.

H>Причем между границами не должно быть сочетания xyz
H>Если бы не должно было быть одного символа, то я бы написал
H>/aaa[^x]*bbb/
H>Но как написать это с точной подстрокой посередине.
H>Подозреваю, что нужен просмотр вперед, но не получается его правильно воткнуть

Просмотр вперед перед каждым символом между ааа и bbb:

/aaa(??!xyz).)*bbb/
Re[2]: Регулярное выражение. Запрет подстроки между двумя ст
От: zaro  
Дата: 21.09.08 07:56
Оценка:
Здравствуйте, zaro, Вы писали:

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


H>>Надо найти строку, ограниченную aaa слева и bbb справа.

H>>Причем между границами не должно быть сочетания xyz
H>>Если бы не должно было быть одного символа, то я бы написал
H>>/aaa[^x]*bbb/
H>>Но как написать это с точной подстрокой посередине.
H>>Подозреваю, что нужен просмотр вперед, но не получается его правильно воткнуть

Z>Просмотр вперед перед каждым символом между ааа и bbb:


Z>/aaa(?: (?!xyz).)*bbb/

Двоеточие со скобкой здесь превращается в грустный смайлик...
тогда вариант с расширенным комментированием (perl):

/aaa
(?:
(?!xyz)
.)*
bbb/x
Re[3]: Регулярное выражение. Запрет подстроки между двумя ст
От: Vain Россия google.ru
Дата: 21.09.08 17:05
Оценка:
Здравствуйте, zaro, Вы писали:

Z>>/aaa(?: (?!xyz).)*bbb/

Z>Двоеточие со скобкой здесь превращается в грустный смайлик...
Z>тогда вариант с расширенным комментированием (perl):
Мараз крепчал.. А текстовые теги на что?
/aaa(?:(?!xyz).)*bbb/
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.