Возник такой вот вопрос, не могу ничего придумать.
Например, дана строка вида - "xyz", нужен шаблон для определения ситуации, когда x, y и z на самом деле одно и то же число. Ну или буква.
В первые пять секунд кажется, что ничего умного, а в последующие два часа ничего в голову не приходит. Я вообще-то в regex не большой специалист, но все же.
Регулярные выражения
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Маньяк
- Сообщения: 4706
- Зарегистрирован: 20 янв 2005, 19:11
-
- Житель
- Сообщения: 662
- Зарегистрирован: 10 апр 2006, 13:16
- Откуда: Coquitlam
Re: Регулярные выражения
202020 например удовлетворяет условиям или толъко один 'знак' используется ?
Re: Регулярные выражения
Один знак -- это цифра, а речь вроде бы о числе. Хотя может быть Zy именно цифры имел в виду? Иначе, действительно, 202020 один из вариантов.
-
- Маньяк
- Сообщения: 4706
- Зарегистрирован: 20 янв 2005, 19:11
Re: Регулярные выражения
Имеется ввиду, что все три числа одинаковые, например "111", "222". Ну или "ааа". Я неправильно выразился как обычно, имелось ввиду не число, а цифра.
Если просто три числа, например, "123", то все, конечно, тривиально - [0-9]{3}. А вот как с повторяющимися? На самом деле я не уверен, что такой шаблон вообще существует.
Если просто три числа, например, "123", то все, конечно, тривиально - [0-9]{3}. А вот как с повторяющимися? На самом деле я не уверен, что такой шаблон вообще существует.
- sobomax
- Маньяк
- Сообщения: 3699
- Зарегистрирован: 29 июн 2006, 22:53
- Откуда: Vancouver
Re: Регулярные выражения
0{3}|1{3}|2{3}|3{3}|4{3}|5{3}|6{3}|7{3}|8{3}|9{3}Zy писал(а):Имеется ввиду, что все три числа одинаковые, например "111", "222". Ну или "ааа". Я неправильно выразился как обычно, имелось ввиду не число, а цифра.
Если просто три числа, например, "123", то все, конечно, тривиально - [0-9]{3}. А вот как с повторяющимися? На самом деле я не уверен, что такой шаблон вообще существует.
-Maxim
-
- Маньяк
- Сообщения: 4706
- Зарегистрирован: 20 янв 2005, 19:11
Re: Регулярные выражения
Ну, типа, да, спасибо! Я до этого как-то не додумался.
С другой стороны изначально вопрос был о как бы ip-адресе вида 111.222.333.444 (неважно, что он нереальный), т.е. шаблон получается ((0{3}|1{3}|2{3}|3{3}|4{3}|5{3}|6{3}|7{3}|8{3}|9{3})\\.){3}(0{3}|1{3}|2{3}|3{3}|4{3}|5{3}|6{3}|7{3}|8{3}|9{3})
Что несколько настораживает своим размером! Может, они имели ввиду что-то более изящное? А может быть, и нет. Может, на шару спросили.
Спасибо, Максим!
С другой стороны изначально вопрос был о как бы ip-адресе вида 111.222.333.444 (неважно, что он нереальный), т.е. шаблон получается ((0{3}|1{3}|2{3}|3{3}|4{3}|5{3}|6{3}|7{3}|8{3}|9{3})\\.){3}(0{3}|1{3}|2{3}|3{3}|4{3}|5{3}|6{3}|7{3}|8{3}|9{3})
Что несколько настораживает своим размером! Может, они имели ввиду что-то более изящное? А может быть, и нет. Может, на шару спросили.
Спасибо, Максим!
- Весенняя
- Завсегдатай
- Сообщения: 286
- Зарегистрирован: 10 окт 2008, 21:15
Re: Регулярные выражения

Вот это для 3-х одинаковых идущих подряд букв или цифр: ([\d|\w])\1{2}
Вот для 4-х одинаковых или разных групп из 3-х одинаковых букв или цифр, разделенных точками: ([\d|\w])\1{2}\.([\d|\w])\2{2}\.([\d|\w])\3{2}\.([\d|\w])\4{2}
(Это с "back references")
-
- Маньяк
- Сообщения: 4706
- Зарегистрирован: 20 янв 2005, 19:11
Re: Регулярные выражения
Гениально!
Спасибо!
Спасибо!
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
Re: Регулярные выражения
ИП адрес можно описать примерно так: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}Zy писал(а):Ну, типа, да, спасибо! Я до этого как-то не додумался.
С другой стороны изначально вопрос был о как бы ip-адресе вида 111.222.333.444 (неважно, что он нереальный), т.е. шаблон получается ((0{3}|1{3}|2{3}|3{3}|4{3}|5{3}|6{3}|7{3}|8{3}|9{3})\\.){3}(0{3}|1{3}|2{3}|3{3}|4{3}|5{3}|6{3}|7{3}|8{3}|9{3})
Что несколько настораживает своим размером! Может, они имели ввиду что-то более изящное? А может быть, и нет. Может, на шару спросили.
Спасибо, Максим!
-
- Маньяк
- Сообщения: 4706
- Зарегистрирован: 20 янв 2005, 19:11
Re: Регулярные выражения
"Примерно" в данном случае не интересовало.
- Mel'nik
- Завсегдатай
- Сообщения: 407
- Зарегистрирован: 22 май 2007, 19:09
- Откуда: Burnaby
Re: Регулярные выражения
(.)\1+
-
- Маньяк
- Сообщения: 4706
- Зарегистрирован: 20 янв 2005, 19:11
Re: Регулярные выражения
Это любое количество повторяющихся символов, следует из алгоритма Весенней.