Как отразить в GREP города из нескольких слов в скобках

Статус
Закрыто для дальнейших ответов.

tree2

Топикстартер
12 лет на форуме
Сообщения
70
Реакции
2
Здравствуйте.
Не могу отразить в GREP города в скобках
если пишу:
(\([\l\u-]+\))
- то находятся города из одного слова (Москва), (Санкт-Петербург), а как найти такие города как
(Великий Новгород) или (St. Petersburg)
 

tree2

Топикстартер
12 лет на форуме
Сообщения
70
Реакции
2
спасибо
хорошо вот так:
\(.+?\)
а как указать что после открывающейся скобки должно быть слово с прописной буквы?
 

granat

Участник
Сообщения
382
Реакции
315

tree2

Топикстартер
12 лет на форуме
Сообщения
70
Реакции
2
спасибо, но
так не находятся все слова в скобке включая скобки
 

granat

Участник
Сообщения
382
Реакции
315
еще проще:
\(\u\l+[-\.]?(\u\l+)?\)|\(\u\l+[-\.]?\s\w+\)
 
Последнее редактирование:

tree2

Топикстартер
12 лет на форуме
Сообщения
70
Реакции
2
а два слова -(Старый Оскол)
не находит
 

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
Альтернативу можно убрать, если поставить нечеткий захват пробела после разделителя. Да и захват второго слова - необязаловка. При этом текст в скобках должен заканчиваться на строчную букву. Кроме того первое слово может состоять из одной заглавной буквы - (Н. Новгород), например
Код:
\(\u\l?[-\.]?\s?(?:\u\l+)?\l\)
 
  • Спасибо
Реакции: granat

granat

Участник
Сообщения
382
Реакции
315
а еще есть "города-на-реках": Ростов-на-Дону, Комсомольск-на-Амуре и т.д.
 

kstati

иɯɐɯɔʞ
10 лет на форуме
Сообщения
1 138
Реакции
512
а еще есть "города-на-реках": Ростов-на-Дону, Комсомольск-на-Амуре и т.д.
В этом случае сработает такой шаблон:
Код:
\(\u\l*[-\.]?(?:\s|на-)?(?:\u\l+)?\l\)
То есть дать альтернативу пробелу в виде «на-»
 
  • Спасибо
Реакции: tree2 и granat

tree2

Топикстартер
12 лет на форуме
Сообщения
70
Реакции
2
Спасибо, последний вариант работает как надо.
 
Статус
Закрыто для дальнейших ответов.