![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
![]()
Здравствуйте.
Не нашёл информации о том, можно ли в регулярных выражениях искать в результате предыдущего поиска. Пример задачи. Текст. 999781873231 1417 17.09.2021,08:44 ******39**50667617 0716293246******** 051027******68**89 ------------------ 04**23**47****7488 **1221317359****** 09********52657784 999781886746 5460 17.09.2021,08:44 0317**37******7684 **1325**425569**** 07**2232**54****81 ------------------ 06**26****506179** **10**364859****88 0514**33****6277** 999781762221 1710 17.09.2021,08:10 **1223****52**7690 0215**3144**65**** ******3841586778** Шаблон регулярки для поиска "([\*\d]{18})" Данная регулярка находит сроки вида "******39**50667617", как одним регулярным выражением найти в этой строке допустим цифру 17, как дополнить шаблон "([\*\d]{18})"? Пробовал Просмотр вперёд и назад, как работает Поиск по условию не понял. Прошу помощи. |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,431
|
![]()
"[\*\d]{16}([\*\d])[\*\d]" - в первой группе будет 17я цифра.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
![]()
Вижу вопрос не так прочли, не 17-тую цифру, а цифру 17.
Ваше выражение ищет 17-тую позицию, а мне нужна цифра 17 в этой строке в любой позиции. Последний раз редактировалось alanatolich; 02.10.2021 в 10:28. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,728
|
![]()
Цифры 17 не существует. 17 - это или число, или строка цифр.
![]() ![]() Последний раз редактировалось digitalis; 02.10.2021 в 10:52. |
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
![]()
alanatolich,
Цитата:
![]() Может у вас и регулярка есть, как найти ЧИСЛО 17 ![]() По идеи находиться в два этапа "([\*\d]{18})" - нужная строка "17" нужное число Но надо за одно регулярное выражение ![]() Последний раз редактировалось BDA; 03.10.2021 в 06:05. |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,728
|
![]()
Не, я в этих регуляторах не секущ. Просто моя буквоедская натура подсказывает, что невозможно найти то, чего в природе не существует.
На Delphi это было бы как 2 байта переслать: Код:
|
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
![]() Цитата:
Код:
Код:
Последний раз редактировалось alanatolich; 02.10.2021 в 11:38. |
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,728
|
![]()
Ну дык зная позицию, строку в число перегнать - кошке чихнуть. Да и зачем перегонять - ведь мы знаем, что ищем. "Вот вам искомое вами число 17, оно в этой строчке есть, начиная с позиции i".
Что до "найти строку" - то при чтении текстового файла он и читается построчно. А если это всё лежит навалом в бинарном массиве, то находим строку по символам <CR><LF> . Впрочем, это уже мимо темы. Найти можно, и очень легко. Но ведь требуется " ![]() Последний раз редактировалось digitalis; 02.10.2021 в 12:00. |
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
![]() Цитата:
И да, задача без языка программирования, чистое регулярное выражение Надеюсь найдутся сильные программисты, дадут ответ. А переносы могут быть, не только богомерзкие виндовые, но и юниксовы и маковые, тоже доп условия и параметры, когда можно обойтись мощной штукой как регулярка, но как, вот в чем вопрос))) Последний раз редактировалось BDA; 03.10.2021 в 06:05. |
|
![]() |
![]() |
![]() |
#10 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,431
|
![]()
"^(?=[\*\d]{18})(?=.{0,16}17).{18}" - как сделать без двух просмотров вперед не придумал.
Цитата:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регулярные выражения. Поиск номеров | firafs | C++ Builder | 1 | 06.11.2017 17:49 |
Регулярные выражения.Поиск нескольких строк подряд | -Jack- | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 23.09.2017 04:53 |
регулярные выражения | ZoxWatt | PHP | 2 | 26.11.2014 16:04 |
Регулярные выражения - поиск пустой строки | furstenberg | Общие вопросы Delphi | 15 | 27.08.2012 18:10 |
регулярные выражения для поиска и замены | Елена Гох | Microsoft Office Access | 7 | 18.01.2011 19:39 |