Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Открыть новую тему     Написать ответ в эту тему

VadKomarov



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Спасибо огромное.
 
Добавлено:
regist123
вообще может быть любой вариант
1, 1с, 1сс, 1-1с, 1-1сс,.... 1/1-1с,.....  
букв впереди не может быть вообще ни каких и так же после тире не может быть букв  а только цифры, ну а посде цифр могут встречаться буквы

Всего записей: 91 | Зарегистр. 01-05-2005 | Отправлено: 10:45 14-09-2017
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VadKomarov 11:45 14-09-2017
Цитата:
может быть любой вариант  
 1, 1с, 1сс, 1-1с, 1-1сс,.... 1/1-1с,.....  

Мой вариант все эти варианты охватывает
   

Цитата:
 после тире не может быть букв

именно это и имел ввиду, немного криво выразился в предыдущем посте.
Там на скрине синим подсвечено, что подпадает под регулярку.
По сути в первой строке всё что охватит регулярка. А во второй строке то что не подпадает под мой вариант регулярки, но охватывает предыдущий вариант который вам предложили.

----------
Раздачи и акции

Всего записей: 5707 | Зарегистр. 20-03-2009 | Отправлено: 12:08 14-09-2017 | Исправлено: regist123, 12:30 14-09-2017
YuS_2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123

Цитата:

Код:
\d+([/-]?\d)*(с{1,2}|дсп)?

Надо бы ещё добавить:

Код:
(<=^|\s)\b\d+([/-]?\d)*(?<!/|-)(с{1,2}|дсп)?\b(?=\s)

тест
ибо:
 14-09-2017

Цитата:
как можно ограничить что бы не было куча "сссссс" а максимум 2

 14-09-2017

Цитата:
букв впереди не может быть вообще ни каких и так же после тире не может быть букв  а только цифры, ну а посде цифр могут встречаться буквы

Всего записей: 1802 | Зарегистр. 03-02-2009 | Отправлено: 07:10 15-09-2017 | Исправлено: YuS_2, 07:32 15-09-2017
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2 08:10 15-09-2017
Цитата:
(?<!/|-)

Лишнее в предложенном мной варианте если будет один из этих символов, то за ним обязательно должна быть цифра. Так что отдельно указывать, что их там быть не должно нет смысла. Доказательство http://i91.fastpic.ru/big/2017/0915/56/21b188bab265216834102fbc479f2356.png
А по поводу начала и конца тоже об этом думал, но тут имхо завит от реализации как он эту регулярку использует. Если его и самый первый вариант в этом отношение устраивал, то подумал что лишнее.

----------
Раздачи и акции

Всего записей: 5707 | Зарегистр. 20-03-2009 | Отправлено: 17:52 15-09-2017 | Исправлено: regist123, 17:53 15-09-2017
YuS_2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123

Цитата:
Лишнее в предложенном мной варианте если будет один из этих символов, то за ним обязательно должна быть цифра.

Да, всё верно, эту часть шаблона можно убрать... просто не обратил внимания, что там всегда будет цифра...

Всего записей: 1802 | Зарегистр. 03-02-2009 | Отправлено: 14:46 16-09-2017
Bol970



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
 
Есть многостроковый текст типа:
 
line 1
....
line n1
Word 1:
line n1 1
.....
line n1 n2
Word 2:
line n2 1
.....
line n2 n3
 
.....
Word N:
line nn 1
.....
line nn nnn
 
Необходимо получить то что между Word
есть такой вариант что блок Word 1 может быть единственным.
 
Подскажите это вообще регуляркой можно описать, типа:
(Word [\d]+:[\S\s]+?)+
 
Спасибо
 

Всего записей: 94 | Зарегистр. 05-10-2004 | Отправлено: 11:47 10-10-2017 | Исправлено: Bol970, 11:49 10-10-2017
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bol970
вы бы лучше хоть кусок реального текста привели. Word 1: от остальных строк чем отличается? Тем, что в конце двоеточие, а вдругом тексте нет?

----------
Раздачи и акции

Всего записей: 5707 | Зарегистр. 20-03-2009 | Отправлено: 12:08 10-10-2017
Bol970



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123
 
Спасибо за ответ.
 
Мне нужно то, что между слов WORD
 
я тут еще раз подумал и решил это типа:

Код:
Word ([\d]+)[\S\s]*?)(?=Word|^ $)

 
единственное последнее еще может быть концом теста.

Всего записей: 94 | Зарегистр. 05-10-2004 | Отправлено: 12:17 10-10-2017 | Исправлено: Bol970, 12:18 10-10-2017
Hjkma

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую всех. Есть текст:

Цитата:
Conny youngbusty.com
Anna, Anna Kolarova, Conie, Connie, Connie Carter, Conny, Conny A, Conny Carter, Conny Dior, Conny K, Conny Lior, Conny Nublies, Constance, Josephine, Lorena, Mary Grey, Muriel, Roselyne A, Roxanne
1BY-DAY (Conny & Connie)
Connie Carter
Connie Carter

И есть составленная мной регулярка:

Цитата:
((?<=^)|(?<=, ))([A-Z][a-z]+ [^,]+)((?=,)|(?=$))

с заменой

Цитата:
\r\n\2\r\n

Регулярка должна охватить только неодиночные слова, разделенные запятыми и вокруг них может быть начало или конец строки и они должны перемещаться на новые строки. Это как раз вторая строка.
Но работает регулярка не совсем корректно. Неодиночные слова переносятся, но что-то странное с первым словом во второй строке: запятая, которая следует за этим словом, переместилась на новую строку, чего не должно быть (она должна оставаться после этого слова, а не перемещаться). И вообще регулярка здесь матчит почти все строки, как-то странно (предполагалось, что должны матчиться только неодиночные слова, которые соответствуют заявленым условиям). Еще и почему-то создалась пустая строка после третьей строки (её не должно быть). Помогите улучшить регулярку, чтобы вместо  

Цитата:
Conny youngbusty.com
Anna
,  
Anna Kolarova
, Conie, Connie,  
Connie Carter
, Conny,  
Conny A
,  
Conny Carter
,  
Conny Dior
,  
Conny K
,  
Conny Lior
,  
Conny Nublies
, Constance, Josephine, Lorena,  
Mary Grey
, Muriel,  
Roselyne A
, Roxanne
1BY-DAY (Conny & Connie)
 
Connie Carter
Connie Carter

Было:

Цитата:
Conny youngbusty.com
Anna,  
Anna Kolarova
, Conie, Connie,  
Connie Carter
, Conny,  
Conny A
,  
Conny Carter
,  
Conny Dior
,  
Conny K
,  
Conny Lior
,  
Conny Nublies
, Constance, Josephine, Lorena,  
Mary Grey
, Muriel,  
Roselyne A
, Roxanne
1BY-DAY (Conny & Connie)
Connie Carter
Connie Carter

Спасибо!

Всего записей: 228 | Зарегистр. 04-03-2015 | Отправлено: 14:56 30-12-2017 | Исправлено: Hjkma, 15:35 30-12-2017
sikemo

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
\w+\s\w+
 
\n$&
---
RegExp: /\w+\s\w+/g
pattern: \w+\s\w+
flags: g
0 capturing groups:  
---
 

Всего записей: 1035 | Зарегистр. 27-11-2008 | Отправлено: 00:11 31-12-2017 | Исправлено: sikemo, 00:13 31-12-2017
YuS_2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hjkma

Цитата:
Помогите улучшить регулярку, чтобы вместо

Всё будет зависеть от инструмента, в котором работают регулярки и от их реализации... но попробуйте так:
Что:

Код:
(?<=, )([A-Z][a-z]+ [^,]+)(?=,|$)

Чем:

Код:
\n\1\n

Всего записей: 1802 | Зарегистр. 03-02-2009 | Отправлено: 00:37 31-12-2017 | Исправлено: YuS_2, 00:53 31-12-2017
Hjkma

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sikemo
На вашем скрине результат не тот, что мне нужен.
YuS_2
Если в начале строки есть неодиночные слова, после которых стоит запятая, то запятая остается, а не переносится.  
Вот так

Цитата:
Conny youngbusty.com  
Anna Kolarova, Anna Kolarova, Conie, Connie, Connie Carter, Conny, Conny A, Conny Carter, Conny Dior, Conny K, Conny Lior, Conny Nublies, Constance, Josephine, Lorena, Mary Grey, Muriel, Roselyne A, Roxanne  
1BY-DAY (Conny & Connie)  
Connie Carter  
Connie Carter

превращается в  

Цитата:
Conny youngbusty.com  
Anna Kolarova,  
Anna Kolarova
, Conie, Connie,  
Connie Carter
, Conny,  
Conny A
,  
Conny Carter
,  
Conny Dior
,  
Conny K
,  
Conny Lior
,  
Conny Nublies
, Constance, Josephine, Lorena,  
Mary Grey
, Muriel,  
Roselyne A
,  
Roxanne  
1BY-DAY (Conny & Connie)  
Connie Carter  
Connie Carter
 

Нужно чтобы эта запятая переносилась тоже.

Всего записей: 228 | Зарегистр. 04-03-2015 | Отправлено: 05:54 31-12-2017
YuS_2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hjkma

Цитата:
Нужно чтобы эта запятая переносилась тоже.

Чтобы выполнить все условия, придется воспользоваться, например, jscript или ещё каким-либо языком...
Дело в том, что Ваш шаблон замены \n\1\n, предполагает добавление перевода строки перед захваченным текстом и после него, т.о. текст:

Код:
Anna Kolarova,

- будет либо иметь пустую строку после обработки перед текстом, либо запятую, которая останется в той же строке (по моему варианту шаблона).
В общем, либо два раза регэкспами обрабатывать с разными шаблонами, либо использовать возможности скриптового языка программирования...

Всего записей: 1802 | Зарегистр. 03-02-2009 | Отправлено: 09:51 31-12-2017 | Исправлено: YuS_2, 09:53 31-12-2017
Hjkma

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Ладно, не надо уже... Вручную все обработал.

Всего записей: 228 | Зарегистр. 04-03-2015 | Отправлено: 10:35 31-12-2017
mirvery

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите, пожалуйста, как в notepad++ с помощью регулярных выражений автоматически удалить из всего текста все скобки со всем в них содержимым?  
 
Есть документ в котором полно разного текста между обыкновенными круглыми скобками во всем документе. Надо удалить всё содержимое этих скобок вместе с самими скобками (содержимое везде разное).
 
Вот этот текст - http://my-files.ru/g61yll (по ссылке - в doc-формате), удалятся будет с такого же текста в txt-формате.

Всего записей: 21 | Зарегистр. 26-12-2017 | Отправлено: 23:26 23-01-2018
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mirvery 00:26 24-01-2018
Цитата:
в notepad++ с помощью регулярных выражений автоматически удалить из всего текста все скобки со всем в них содержимым?


Код:
\(.*\)

заменить на пусто.

----------
Раздачи и акции

Всего записей: 5707 | Зарегистр. 20-03-2009 | Отправлено: 00:03 24-01-2018
sikemo

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
regist123 напишите ему lazy вариант ибо удалит все нафиг.ю примя первую и посл. дужку

Всего записей: 1035 | Зарегистр. 27-11-2008 | Отправлено: 00:20 24-01-2018
regist123



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mirvery
PS. хотя я не смотрел документ, лучше бы вы его в .txt скопировали, заархивировали и так выложили. А то и качать очень долго и потом ещё и не открывается. Так что не знаю какой там текст и скобки на одной строке или на несколько разбитой, лучше так

Код:
\((.|\n)*\)

 
 
Добавлено:
sikemo 01:20 24-01-2018
Цитата:
напишите ему lazy вариант ибо удалит все нафиг.ю примя первую и посл. дужку

sikemo, не понял о чём вы., так пусть mirvery тогда уточнит какой именно ему вариант нужен. Я так понял, что все между скобками удалять по максимуму.
Либо вот ленивый вариант

Код:
\((.|\n)?\)


----------
Раздачи и акции

Всего записей: 5707 | Зарегистр. 20-03-2009 | Отправлено: 00:35 24-01-2018 | Исправлено: regist123, 00:57 24-01-2018
VVL99



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А np++ умеет открывать подобные файлы?
по моему лучше так

Код:
\(.*?\)

Ближайшие скобки, плюс оставшийся пробел, но сам файл я не видел.

Всего записей: 1550 | Зарегистр. 03-02-2011 | Отправлено: 00:45 24-01-2018 | Исправлено: VVL99, 17:14 29-01-2018
YuS_2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А чтобы наверняка:

Код:
\([^\)]+\)

а для ускорения, если конечно поддерживается, я бы заменил "+" на сверхжадный квантификатор "++".  
Но NP++ не использую и поэтому не знаю, есть ли там такая поддержка.

Всего записей: 1802 | Зарегистр. 03-02-2009 | Отправлено: 10:47 24-01-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru