[REGEXP] Взять строку целиком, если конец строки не символ и не буква

  • Автор темы Автор темы Manless
  • Дата начала Дата начала

Manless

Client
Регистрация
09.01.2014
Сообщения
186
Реакции
33
Баллы
28
Решение:
Спасибо за помощь wizard и evgen_po

(?i)
- реГиСтр букв отключаем для подстраховки
[\w*] - любая буква или символ * - должны встречаться хоть один раз

Включая слово user-agent:
Код:
Развернуть Свернуть Копировать
(?i)user-agent:\s*[\w*]+.*?(?=(\r|\n|$))

Исключая слово user-agent:
Код:
Развернуть Свернуть Копировать
(?i)(?<=user-agent:)\s*[\w*]+.*?(?=(\r|\n|$))

Задача:
Версия ZP: 5.7.1.0
Ребят, столкнулся с такой проблемой, то ли баг зенки, то ли выражение regexp не верное. В общем смотрите.

Исходный код:
Код:
Развернуть Свернуть Копировать
User-Agent: *
Disallow: /admin/
Disallow: *component*
Disallow: /go/*
Disallow: /assets/*
Disallow: /load/
Disallow: /comments/
Disallow: /plugins/
Disallow: /ajax/
User-agent: Yandex
Disallow: /admin/
Disallow: *component*
Disallow: /go/*
Disallow: /assets/*
Disallow: /load/*

Regex:
Код:
Развернуть Свернуть Копировать
[A-a..Z-z]ser-[A-a..Z-z]gent.*

В зенке в переменных показывает:
robots2.PNG

Вроде все отлично, но!!!!!

При сохранении в файл выдает такой результат:
robots3.PNG

Где собака порылась? В регексе или в зенке?
Если в регексе, то помогите найти выражение правильное пожалуйста?
Или хотя бы скажите как в регексе обозначить конец строки?
 
Последнее редактирование:
Ребят, столкнулся с такой проблемой, то ли баг зенки, то ли выражение regexp не верное. В общем смотрите.

Исходный код:
Код:
Развернуть Свернуть Копировать
User-Agent: *
Disallow: /admin/
Disallow: *component*
Disallow: /go/*
Disallow: /assets/*
Disallow: /load/
Disallow: /comments/
Disallow: /plugins/
Disallow: /ajax/
User-agent: Yandex
Disallow: /admin/
Disallow: *component*
Disallow: /go/*
Disallow: /assets/*
Disallow: /load/*

Regex:
Код:
Развернуть Свернуть Копировать
[A-a..Z-z]ser-[A-a..Z-z]gent.*

В зенке в переменных показывает:
Посмотреть вложение 7421

Вроде все отлично, но!!!!!

При сохранении в файл выдает такой результат:
Посмотреть вложение 7422

Где собака порылась? В регексе или в зенке?
Если в регексе, то помогите найти выражение правильное пожалуйста?
Или хотя бы скажите как в регексе обозначить конец строки?
переменную после регекса тримировать можно - Обработка текста -> Trim
 
переменную после регекса тримировать можно - Обработка текста -> Trim

Я сразу беру все элементы в список, по этому трим не могу использовать, а только костыли со вспомогательным списком.
 
Я сразу беру все элементы в список, по этому трим не могу использовать, а только костыли со вспомогательным списком.
даже не знаю как такое получается..
а почему такая регулярка: [A-a..Z-z]ser-[A-a..Z-z]gent.* ?
[Uu]ser-[Aa]gent.*

видимо тут как то действительно надо регулярку преобразовать (хотя в конструкторе нормально отрабатывает ведь), либо мириться с тем что получается - переводы строк вроде как не критичны в роботсах..
 
  • Оценить
Реакции: Manless
даже не знаю как такое получается..
а почему такая регулярка: [A-a..Z-z]ser-[A-a..Z-z]gent.* ?
[Uu]ser-[Aa]gent.*

видимо тут как то действительно надо регулярку преобразовать (хотя в конструкторе нормально отрабатывает ведь), либо мириться с тем что получается - переводы строк вроде как не критичны в роботсах..
Да на всяк случай такая регулярка

Я формирую некий отчет в таблицу эксель, а там лишняя строка - это увеличение высоты строки :(
 
1) реГиСтр букв отключаем для подстраховки - (?i)
Код:
Развернуть Свернуть Копировать
(?i)User-agent.*?(?=($|\n))

2) Это решение подсказал уважаемый evgen_po
Код:
Развернуть Свернуть Копировать
(?i)user-agent.*(?=\r)

Во втором случае исключено появление пустых строк в списке
 
Во втором случае исключено появление пустых строк в списке
а также исключает попадание ПОСЛЕДНЕЙ записи, так как в конце НЕ будет \r

тогда уже както так

(?i)user-agent:\s*[\w*]+.*?(?=(\r|\n|$))

[\w*] - любая буква или символ * - должны встречаться хоть один раз
 
  • Оценить
Реакции: Manless и evgen_po

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)