2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2, 3  След.
 
 Загадочный regexp
Сообщение26.01.2018, 10:04 
Без гугления конкретного выражения в Интернете, сообщить, что будет находить регулярное выражение:

Код:
^.?$|^(..+?)\1+$

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 11:30 
Мат?

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 12:12 
ozheredov
Нет :)

-- 26.01.2018, 12:28 --

Краткий справочник по использованным символам
^ начало строки
. любой символ
? ноль или одно вхождение предыдущего выражения
$ конец строки
| "или" -- ищет выражение слева от |, а если не нашлось, то ищет выражение справа от |
() -- рассматривает все что внутри скобок как единый шаблон, если нашлось то захватывается в нумерованную подстроку, в нашем случае с номером 1
+ одно или больше вхождений предыдущего выражения
\1 найденная нумерованная подстрока с номером 1
Подробнее (и мне кажется достаточно для отгадывания) тут: https://ru.wikipedia.org/wiki/%D0%A0%D0 ... 0%B8%D1%8F

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 14:36 
Аватара пользователя
Пустая строка, один символ, $www^*$, где $|w| > 1$.

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 14:59 
mihaild в сообщении #1287569 писал(а):
Пустая строка, один символ,

Да, это левая часть (до |).

mihaild в сообщении #1287569 писал(а):
$www^*$, где $|w| > 1$.

Нет :)

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 15:22 
Аватара пользователя
wrest в сообщении #1287575 писал(а):
Нет :)
Да, требования $|w| > 1$ нет (привык, что $+?$ - это ленивый $+$), и естественно $ww^*$ (откуда взял лишний повтор - не понимаю).

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 15:30 
mihaild в сообщении #1287586 писал(а):
и естественно $ww^*$ (откуда взял лишний повтор - не понимаю).

Нет :)
А вообще, надо бы написать простым языком -- что именно фильтрует эта регулярка, то есть ответ на загадку нужен в форме "Сработают такие строки, в которых..."
Если вы этого еще не увидели, думаю что ответ вас очень удивит :mrgreen:

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 15:33 
Аватара пользователя
А, понял, откуда лишний повтор, там же $+$ а не $*$ над $\\1$ :)
Ну т.е. строки из $1$ символа или получающиеся повторением некоторой строки хотя бы три раза.

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 15:37 
mihaild в сообщении #1287594 писал(а):
Ну т.е. строки из $1$ символа или получающиеся повторением некоторой строки хотя бы три раза.

Неконкретно, можно (вернее, нужно) написать точнее.

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 15:44 
Аватара пользователя
wrest в сообщении #1287596 писал(а):
Неконкретно, можно (вернее, нужно) написать точнее.
Можете привести пример строки, про которую непонятно, подходит ли она под это определение?

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 15:49 
mihaild в сообщении #1287598 писал(а):
Можете привести пример строки, про которую непонятно, подходит ли она под это определение?

Нет, т.к. это будет подсказка.
Вместо этого, спрошу какие строки сматчатся (строка начинается с первой w)
1: w
2: ww
3: www
4: wwww
5: wwwww
6: wwwwww
7: wwwwwww
8: wwwwwwww
9: wwwwwwwww

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 16:05 
Аватара пользователя
Все (и в текстовом описании должно было быть "хотя бы два раза" - за это я и не люблю текстовые описания, в них часто проще запутаться).

Но вопрос, что неконкретного было в предыдущем описании, остается.

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 16:08 
mihaild в сообщении #1287604 писал(а):
Все

Нет :)

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 16:16 
Аватара пользователя
Что считается "предыдущим выражением" для $+$ и $?$?
Если в $..+?$ $+$ навешивается на $.$, а $?$ на $.+$, то получается https://regex101.com/r/29oDAe/1, какая из ваших строк там не подходит?

 
 
 
 Re: Загадочный regexp
Сообщение26.01.2018, 16:20 
mihaild в сообщении #1287609 писал(а):
то получается

Не получается, но раз уж вы решили немного почитерить и там потестировать, то введите регексп который задан.

Кстати, второй знак вопроса (тот что внутри скобок), если он смущает, можно вообще убрать, результат не меняется, просто ускоряется работа.

 
 
 [ Сообщений: 35 ]  На страницу 1, 2, 3  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group