Бесплатно напишу регулярное выражение. Часть 2.

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83
Спасибо. В тестере регулярка отработала. А вот на практике что-то не работает. Посмотрел по отладке - исходный текст (равно как и DOM) парсится не в той кодировке. Думаю в этом причина. Сайт на cp-1251, а парсится скорее всего в utf-8. В итоге весь русский текст меняется на черные ромбики.

Не подскажете как решить проблему?
Попробуйте так:
рег.выр-|-номер совпадения-|-windows-1251
 

winchester7

Client
Регистрация
27.07.2011
Сообщения
51
Благодарностей
16
Баллы
8

lucian

Client
Регистрация
26.10.2011
Сообщения
214
Благодарностей
45
Баллы
0
попробуйте UTF-8 указать вместо win-1251
 

winchester7

Client
Регистрация
27.07.2011
Сообщения
51
Благодарностей
16
Баллы
8

winchester7

Client
Регистрация
27.07.2011
Сообщения
51
Благодарностей
16
Баллы
8
Проблему решил. Спасибо daniiilneet :-)

Почему-то при загрузке исходного кода страницы использовалась кодировка utf-8. Когда попробовал использовать DOM - все сразу заработало.
 

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43
нужна помощь!
есть регулярка, она парсит строчки из текста, кол-во совпадений в макросе указываю -all-

проблема собственно в том, что нужно в полученному списку строк, к КАЖДОЙ строке данного массива дописать в начало некий известный текст.

помогите пожалста, чето сам допетрить не могу как в прожектмакере сделать, да попроще, чтоб не городить стопицот макросов
 

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
Помогите с регулярным выражением: нужно чтобы оно парсило слово Classic если такое имеется, но в тоже время не парсило это слово, если оно в составе другого слова (например NeoClassical).
[COLOR=#fafafa !important]

[/COLOR]​
 

lucian

Client
Регистрация
26.10.2011
Сообщения
214
Благодарностей
45
Баллы
0
Для shcnaps: По-моему простое решение - брать 0 строку с удалением, и записывать ее же с нужным текстом в комплекте в тот же файл в конец. И запустить шаблон, состоящий из 1 макроса на повтор. Через минуту все будет готово (смотря сколько строк)

Для Porosenok регулярка
(?<=[^\w])Clas.*?sic(?=[^\w])
или
(?<=[^\w])Classic(?=[^\w])
 

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
спасибо, но почему-то ни первая ни вторая регулярка не выпарсивает слово Classic само по себе.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
спасибо! вроде то что нужно
[COLOR=#fafafa !important]

[/COLOR]​
 

NAGor4ik

Client
Регистрация
11.12.2011
Сообщения
6
Благодарностей
0
Баллы
1
Искал и не нашел, дайте ссылку на описание логики регулярных выражений.
 

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43
не, мне это нужно в другом шаблоне применять, в результатах парсинга группа строк получается. не хочется цикл городить, но видать придется, раз невозможно одним макросом сделать
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
schnaps попробуй вот так: Возьми результат своего парсинга и замени через такую вот штуку:

{-RegExp.Replace-|-Тут результат парсинга-|-(^|\r\n).*?(?=[a-zA-Zа-яА-Я\d+])-|-{-String.Enter-}тут что надо добавить в начале-}
 
  • Спасибо
Реакции: schnaps

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43
получается что мы заменяем перевод строки+след строчка на первод строки (макрос энтер)+то что нужно вставить+след строчка.
Занятно :-) попробую, но сечас пока уже неактуально :-)
но спасибо!
 

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83
нужна помощь!
есть регулярка, она парсит строчки из текста, кол-во совпадений в макросе указываю -all-

проблема собственно в том, что нужно в полученному списку строк, к КАЖДОЙ строке данного массива дописать в начало некий известный текст.

помогите пожалста, чето сам допетрить не могу как в прожектмакере сделать, да попроще, чтоб не городить стопицот макросов
За основу можете взять вот этот шаблон на JS
 

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
скажите, а есть какая-нибудь универсальная регулярка чтоб удалять пустые бб-теги?
[COLOR=#fafafa !important]

[/COLOR]​
 

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
ну допустим [ url = ] [ / url ] (без пробелов естественно)
Так то легко написать можно, именно под него, но вдруг есть какой универсальный регвыр который не только урл теги будет удалять
undefined​
 

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83
ну допустим [ url = ] [ / url ] (без пробелов естественно)
Так то легко написать можно, именно под него, но вдруг есть какой универсальный регвыр который не только урл теги будет удалять
undefined​
PHP:
\[.*\]\[.*?\]
 

yourmind

Client
Регистрация
13.09.2010
Сообщения
245
Благодарностей
21
Баллы
18
подскажите регулярку: разделить текст на пассажи по 100 символов. можно ли?
 

step85

Client
Регистрация
19.02.2010
Сообщения
1 839
Благодарностей
287
Баллы
83
подскажите регулярку: разделить текст на пассажи по 100 символов. можно ли?
Прогоните текст через макрос парсинга строки регулярными выражениями. Номер совпадения all а регулярка .{100}
 
  • Спасибо
Реакции: yourmind

seomr

Client
Регистрация
31.05.2011
Сообщения
103
Благодарностей
5
Баллы
18
Подскажите, как можно из файла с определенным количеством строк различной длины выпарсить только строки длиной в 10 символов?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
Взять все строки из файла, в регулярное выражение вписать (?<=(\r|\n|^))[a-zA-Z\d+]{10}(?=(\r|\n|$)) такую регулярку. В результате будут все строки длиной 10 знаков.
 
  • Спасибо
Реакции: seomr

Se0mashines

Client
Регистрация
05.02.2012
Сообщения
209
Благодарностей
52
Баллы
28

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Строка прокси: (?<=proxy&host\=).*(?=&notes)
Строка IP: .*(?=&port\=)
Строка порта: (?<=\=).*
 
  • Спасибо
Реакции: Se0mashines

kabab

Client
Регистрация
05.06.2011
Сообщения
46
Благодарностей
1
Баллы
8
Как просто с ссылки - <a href="http://site.ru/sdfsdfsdf.html">sfsdfsdfsd</a> вырезать сам адрес http://site.ru/. Спасибо.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113

kabab

Client
Регистрация
05.06.2011
Сообщения
46
Благодарностей
1
Баллы
8
(?<=\<a href\=\")http:\/\/.*?\/
Вот так.
Оно оставляет теги <a>...</a>, можно и их убрать? И еще одно выражение в котором все тоже, но еще и убирает http://.
Я просто из ссылки http://site.ru/ убираю http:// этим рег. выражением - http:\/\/.*?, но получается вот так - site.ru/, как палочку убрать? :-)
 

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