Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.135.183.89] |
|
Сообщ.
#1
,
|
|
|
Цитата ^(.*)\s*[,\s*]((?:\d{1,6})(?:\\|\/(?:\d{1,6}))?\s*)$ подзабыл регулярки. Ерунда получается. Цитата красная 5/1 зелёная ,1 коричневая 0 40 лет победы ,37/3 Зелёная Цитата Match 1 1. красная 2. 5/1 Match 2 1. зелёная 2. 1 Match 3 1. коричневая 2. 0 Match 4 1. 40 лет победы 2. 37/3 Зелёная не отображается в группах. http://rubular.com/r/hUj9hnKO7x Вот, собственно как сделать три группы: 1 группа улица 2 номер дома(если нет - пустая) 3 если нет номера дома - то вывести улицу, если она состоит из цифр. |
Сообщ.
#2
,
|
|
|
Если название улицы заканчивается буквой, то как-то так:
^\s*(.*[A-Za-z\u0080-\uffff])\D*((?:\d+)(?:[^\d\/\n]*)\/?(?:\d+)?)?$ В первой подмаске улица, во второй номер дома. Насчет "вывести улицу, если она состоит из цифр" непонятно. |
Сообщ.
#3
,
|
|
|
Цитата AVA12 @ Насчет "вывести улицу, если она состоит из цифр" непонятно. Если первая группа - только цыфры, то вывести их в третью группу. |
Сообщ.
#4
,
|
|
|
пока добился такого вот:
http://rubular.com/r/qJQVK16f6Z но, например, если улица без пробела в конце - то она не попадает. |
Сообщ.
#5
,
|
|
|
Вот так, вроде, работает:
^([^,\r\n]*?[^ ,])(?:[ \t,]+(\d+(?:(?:\\|\/)\d+)?))?\s*$ А насчет Цитата - в этом случае придется заодно переносить нмер дома в четвертую подмаску, а первые две оставлять пустыми. Или вместо этого сделать три подмаски: улица (если не только цифры), улица (если только цифры), дом. Если первая группа - только цыфры, то вывести их в третью группу |