[ID CC-CC2022] Неправильное поведение ГРЕПа?

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
Надо курсивить авторов (как всегда).
На картинке 1 в запросе (второе условие сверху) нет косой черты (в квадратных скобках) и первый автор после двойного слеша не курсивится.
На картинке 2 добавлена косая черта. Первый автор после слеша закурсивился, зато второй раскурсивился. Что не так?
 

Вложения

  • clp1.jpg
    clp1.jpg
    100 КБ · Просм.: 1 008
  • clp2.jpg
    clp2.jpg
    112.1 КБ · Просм.: 862
Последнее редактирование:
Вы бы тексты, что ли, выкладывали. И греп-запросы тоже, чтобы всё это не перенабирать заново по скринам. :)
 
вот так попробуйте

Код:
(?<=[,|;|;|/])\s\u(\l|')+\u?\l+\s\u\.(\s\u\.)?(?=(,?))

а срабатывание правильное)
греп не проходит всякий раз с самого начала.
в вашем запросе запятая попадает в первое вхождение.
греп продолжает далее.и не может найти уже (?<=[,|;|;|/])
 
Последнее редактирование:
  • Спасибо
Реакции: hulk1776 и LeonidB
вот так попробуйте

Код:
(?<=[,|;|;|/])\s\u(\l|')+\u?\l+\s\u\.(\s\u\.)?(?=(,?))

а срабатывание правильное)
греп не проходит всякий раз с самого начала.
в вашем запросе запятая попадает в первое вхождение.
греп продолжает далее.и не может найти уже (?<=[,|;|;|/])

to LeonidB (ok)):
4. Гоббс Т. Левиафан // Гоббс Т., Канетти Э. Левиафан.
(?<=[,|;|:])\s\u(\l|')+\u?\l+\s\u\.(\s\u\.)?,?

Когда убрал последнюю запятую с вопросом (видимо, она лишняя, так как в начале запроса запятая уже присутствует), оно и сработало.
 
ну или так. надо, чтобы та запятая "не захватывалась"
 
Только вот тут: (?<=[,|;|;|/]) надо вместо второй точки с запятой поставить двоеточие, насколько я понимаю.
 
))) набирал жеж. обшипси
 
4. Гоббс Т. Левиафан // Гоббс Т., Канетти Э. Левиафан.
(?<=[,|;|:])\s\u(\l|')+\u?\l+\s\u\.(\s\u\.)?,?

Когда убрал последнюю запятую с вопросом (видимо, она лишняя, так как в начале запроса запятая уже присутствует), оно и сработало.
а у меня ваш запрос в этой строке находит только Канетти Э. :)
а если убираю всю первую скобку и оставляю только \s\u(\l|')+\u?\l+\s\u\.(\s\u\.)?,? то находит всех авторов... :)
 
а у меня ваш запрос в этой строке находит только Канетти Э. :)
а если убираю всю первую скобку и оставляю только \s\u(\l|')+\u?\l+\s\u\.(\s\u\.)?,? то находит всех авторов... :)
Здесь не поставлен слеш в конструкции
[,|;|:]. Так было до начала тестирования запроса.
Надо так
[,|;|:|/].