Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Регулярное выражение для поиска паттерна без новой строки

Автор: LaVas_ki
Дата сообщения: 11.05.2016 07:52
Есть текст вида
Test test\n[quote:1v5xzi52]Test test[/quote:1v5xzi52]\nTest test\n[quote:1v5xzi52]Test test[/quote:1v5xzi52] \n2\n[quote:1v5xzi52]Test test[/quote:1v5xzi52]Test test\n3\nTest test[quote:1v5xzi52]Test test[/quote:1v5xzi52] Test test

Надо в нем найти все [/quote:*], которые без символа новой строки \n
Например такие трогать не надо:
[/quote:1v5xzi52]\n
сразу новая строка
[/quote:1v5xzi52] \n
"пустые" символы до новой строки

А вот такие без \n должны находится:
[/quote:1v5xzi52]Test
сразу текст
[/quote:1v5xzi52] Test
текст вместе с пробелами

Пока вот только смог просто все вхождения найти
http://www.regexr.com/3dd33

ПС
конечно 1v5xzi52 может быть любым ID
Автор: Mavrikii
Дата сообщения: 11.05.2016 08:03
LaVas_ki
для какого языка? а то бывают свои особенности

ps: /\[\/quote:.*?\]\s*\\n/g
\\n ибо в тексте не совсем новая строка
это находит с новой строкой, ну и нужно, соответственно, сказать, что после пробела не новая строка

/\[\/quote:[^\]]+\](?!\s*\\n)/g
Автор: LaVas_ki
Дата сообщения: 11.05.2016 08:15

Цитата:
для какого языка?

руками будут в каком-нибудь текстовом редакторе делать. что б на сайте http://www.regexr.com/ работало хотя б

Цитата:
/\[\/quote:.*?\]\s*\\n/g

Ну похоже, что нашлись именно те, что не нужны, потому что найти нужно как раз те, у которых нет \n
http://i.imgur.com/XEf1fRu.jpg
Как инвертировать?
Автор: Mavrikii
Дата сообщения: 11.05.2016 08:17
LaVas_ki
выше написал

/\[\/quote:[^\]]+\](?!\s*\\n)/g
Автор: LaVas_ki
Дата сообщения: 11.05.2016 08:31
Mavrikii
спасибо!
Пара вопросов - никак не пойму, как читается [^\]] перед quote:
и если мне надо добавить еще один символ в исключение, то как?
Что бы выкинуть еще и [ до кучи к \n
например [/quote:1v5xzi52][a]
Автор: Mavrikii
Дата сообщения: 11.05.2016 08:33
LaVas_ki

Цитата:
как читается [^\]] перед quote

что угодно, только не ]

Цитата:
то как?

через или
(?!\s*(\\n|\[))

ну или пример конкретный нужен.
Автор: LaVas_ki
Дата сообщения: 11.05.2016 15:13
Спасибо, все понял.

Страницы: 1

Предыдущая тема: Нужен программист JavaScript


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.