[ID CS4-CS6] Строка поиска для GREP

Tiburtsy

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

vbatushev

20 лет на форуме
Сообщения
2 242
Реакции
1 227
Код:
[^(овен|телец|близнецы|рак|лев|дева|весы|скорпион|стрелец|козерог|водолей|рыбы|\s)]\s*\n
 
  • Спасибо
Реакции: Tiburtsy

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

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

Код:
((?:(?!(?:(?:овен|телец) *)?\n).|(?:(?:овен|телец) *)\n)*)\K\n

Can't do (?:negative)? variable length look-behind. Character classes (i.e. square brackets) просто ни при чем.

re.png
 

vbatushev

20 лет на форуме
Сообщения
2 242
Реакции
1 227

Tiburtsy

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

Код:
((?:(?!(?:(?:овен|телец) *)?\n).|(?:(?:овен|телец) *)\n)*)\K\n

Can't do (?:negative)? variable length look-behind. Character classes (i.e. square brackets) просто ни при чем.

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

vbatushev

20 лет на форуме
Сообщения
2 242
Реакции
1 227

vbatushev

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

Tiburtsy

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

Tiburtsy

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

vbatushev

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