[ID CS5.5] Строка поиска для GREP

Tiburtsy

Топикстартер
12 лет на форуме
Сообщения
41
Оценка реакций
14
Не могу составить запрос для поиска разрыва строки \n перед которым НЕТ знака Зодиака
[^(овен|телец|близнецы|рак|лев|дева|весы|скорпион|стрелец|козерог|водолей|рыбы)]\n
не находит некоторые разрывы
(?<![овен|телец|близнецы|рак|лев|дева|весы|скорпион|стрелец|козерог|водолей|рыбы])\n
Этот вариант тоже глючит.
А ещё между Знаком и разрывом может оказаться пробел и не один.
 

vbatushev

15 лет на форуме
Сообщения
2 238
Оценка реакций
1 220
Код:
[^(овен|телец|близнецы|рак|лев|дева|весы|скорпион|стрелец|козерог|водолей|рыбы|\s)]\s*\n
 

люди_будущего

Участник
Сообщения
37
Оценка реакций
34
Замена разрыва строки, перед которым нет знака зодиака и, возможно, пробелов, на, например, параграф:

Код:
((?:(?!(?:(?:овен|телец) *)?\n).|(?:(?:овен|телец) *)\n)*)\K\n
Can't do (?:negative)? variable length look-behind. Character classes (i.e. square brackets) просто ни при чем.

re.png
 

vbatushev

15 лет на форуме
Сообщения
2 238
Оценка реакций
1 220

Tiburtsy

Топикстартер
12 лет на форуме
Сообщения
41
Оценка реакций
14
Замена разрыва строки, перед которым нет знака зодиака и, возможно, пробелов, на, например, параграф:

Код:
((?:(?!(?:(?:овен|телец) *)?\n).|(?:(?:овен|телец) *)\n)*)\K\n
Can't do (?:negative)? variable length look-behind. Character classes (i.e. square brackets) просто ни при чем.

Посмотреть вложение 114464
А попробуйте поставить в конец букву "о" или "е"- сработает?
 

vbatushev

15 лет на форуме
Сообщения
2 238
Оценка реакций
1 220

vbatushev

15 лет на форуме
Сообщения
2 238
Оценка реакций
1 220
Тьфу, понял, о чем речь. Нужно найти именно перевод строки.
Если избегать луков, надо, конечно, городить городушки.
 

Tiburtsy

Топикстартер
12 лет на форуме
Сообщения
41
Оценка реакций
14
Вроде бы разобрался, получился вот такой код:
(?<!овен)(?<!телец)(?<!близнецы)(?<!рак)(?<!лев)(?<!дева)(?<!весы)(?<!скорпион)(?<!стрелец)(?<!козерог)(?<!водолей)(?<!рыбы)(?<!\x{20})\x{20}*\n
По моему вполне логично и читаемо. ID CS5.5 не обрушился, посмотрим, как этот код поведёт себя в реальном скрипте. Как вам такое решение? x{20} - только пробел, здесь не критично, можно и \s.
P.S. По ходу решения вопроса наткнулся на интересный GREP редактор от Peter Kahrel. Сразу же подсвечивает всё найденное в real-time. Ускоряет отладку запроса в разы. Рекомендую.
 

Tiburtsy

Топикстартер
12 лет на форуме
Сообщения
41
Оценка реакций
14
Тьфу, понял, о чем речь. Нужно найти именно перевод строки.
Если избегать луков, надо, конечно, городить городушки.
Как только мы заключили слово в [] оно разбивается на символы и поиск происходит посимвольно, например [^овен|лев]\n найдёт все переводы строк с символами, за исключением овенл. Вроде как моё решение выше не совсем огород да и выглядит безобидно? Спасибо за помощь!
 

vbatushev

15 лет на форуме
Сообщения
2 238
Оценка реакций
1 220
Вроде как моё решение выше не совсем огород да и выглядит безобидно
Индизайн валится порой на таких безобидных грепах, что начинаешь всюду перестраховываться.