|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.10.2021, 20:31 | #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})"? Пробовал Просмотр вперёд и назад, как работает Поиск по условию не понял. Прошу помощи. |
01.10.2021, 20:57 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
"[\*\d]{16}([\*\d])[\*\d]" - в первой группе будет 17я цифра.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
02.10.2021, 10:15 | #3 |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
Вижу вопрос не так прочли, не 17-тую цифру, а цифру 17.
Ваше выражение ищет 17-тую позицию, а мне нужна цифра 17 в этой строке в любой позиции. Последний раз редактировалось alanatolich; 02.10.2021 в 10:28. |
02.10.2021, 10:48 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Цифры 17 не существует. 17 - это или число, или строка цифр. Цифр всего 10: '0,'1.....'9 . Ну, 16-ричных цифр немного больше
Последний раз редактировалось digitalis; 02.10.2021 в 10:52. |
02.10.2021, 10:54 | #5 | |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
alanatolich,
Цитата:
Может у вас и регулярка есть, как найти ЧИСЛО 17 По идеи находиться в два этапа "([\*\d]{18})" - нужная строка "17" нужное число Но надо за одно регулярное выражение Последний раз редактировалось BDA; 03.10.2021 в 06:05. |
|
02.10.2021, 11:05 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Не, я в этих регуляторах не секущ. Просто моя буквоедская натура подсказывает, что невозможно найти то, чего в природе не существует.
На Delphi это было бы как 2 байта переслать: Код:
|
02.10.2021, 11:35 | #7 | |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
Цитата:
Код:
Код:
Последний раз редактировалось alanatolich; 02.10.2021 в 11:38. |
|
02.10.2021, 11:57 | #8 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Ну дык зная позицию, строку в число перегнать - кошке чихнуть. Да и зачем перегонять - ведь мы знаем, что ищем. "Вот вам искомое вами число 17, оно в этой строчке есть, начиная с позиции i".
Что до "найти строку" - то при чтении текстового файла он и читается построчно. А если это всё лежит навалом в бинарном массиве, то находим строку по символам <CR><LF> . Впрочем, это уже мимо темы. Найти можно, и очень легко. Но ведь требуется " Последний раз редактировалось digitalis; 02.10.2021 в 12:00. |
02.10.2021, 12:45 | #9 | |
Пользователь
Регистрация: 26.07.2013
Сообщений: 22
|
Цитата:
И да, задача без языка программирования, чистое регулярное выражение Надеюсь найдутся сильные программисты, дадут ответ. А переносы могут быть, не только богомерзкие виндовые, но и юниксовы и маковые, тоже доп условия и параметры, когда можно обойтись мощной штукой как регулярка, но как, вот в чем вопрос))) Последний раз редактировалось BDA; 03.10.2021 в 06:05. |
|
02.10.2021, 18:06 | #10 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
"^(?=[\*\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 |