Я пытаюсь создать проверку регулярного выражения для уличного адреса, в котором первая буква каждого слова прописными буквами

#regex #google-forms

Вопрос:

Я просмотрел несколько примеров, и это почти работает, но это не позволит цифрам

 b[a-z]*
 

Я использую формы Google и хочу подтвердить, что, когда кто-то вводит адрес, все первые буквы прописными буквами прописными буквами в слове. Если я использую это, чтобы убедиться, что там нет всех строчных слов, это вроде как работает … но не совсем так, как любое слово, у которого есть заглавная буква посередине, также будет работать.

Поэтому я хочу, чтобы это было подтверждено

 124 Main Street 
not
124 main Street
or
124 Main street 
 

Ответ №1:

Вот общий шаблон регулярного выражения, который должен работать:

 ^d (?: [A-Z][a-z]*) $
 


ДЕМОНСТРАЦИЯ

Это регулярное выражение говорит, чтобы соответствовать:

 ^           from the start of the address
d          a street number
(?:
    [ ]     space, followed by
    [A-Z]   a capital first letter
    [a-z]*  zero or more following lowercase letters
) 
$           the end of the address
 

Комментарии:

1. Огромное спасибо. Это работает для уличных адресов, но затем я понял, что должен разрешить ему также проверять почтовые ящики, которые не начинаются с номера.

2. …тогда вам следует задать новый вопрос. У вас есть 2 ответа здесь на вопрос, который вы на самом деле задавали выше.

3. Понял. Еще раз спасибо вам за помощь. Ваш ответ был идеальным, но, очевидно, у меня не было правильного вопроса. Спасибо за совет задать новый вопрос.

Ответ №2:

Вы могли бы попробовать отрицательное утверждение взгляда:

 ^(?!.*s[a-z][a-z]). 
 

Объяснение:

^ — привязка — совпадение начала строки

(?!.*s[a-z]{2}) — эгоистичный внешний вид — утверждение, приведенное ниже, не содержит s пробелов, за которыми следуют две строчные буквы (поэтому слово не начинается со строчной буквы)

. — сопоставьте один или несколько символов любого персонажа.

Демонстрация регулярных выражений

Комментарии:

1. Это тоже была отличная идея, так как ему было бы все равно, если бы для начала был номер, но Google forms это не нравится. Может быть, они используют другую версию регулярного выражения? Я думаю, что ему не нравится смотреть вслух. Я смог принять твою идею и использовать

2. Позвольте мне попробовать еще раз.

3. Это тоже была отличная идея, так как ему было бы все равно, если бы для начала был номер, но Google forms это не нравится. Может быть, они используют другую версию регулярного выражения? Я думаю, что ему, может быть, не нравится смотреть вокруг. Вы можете выбирать между содержит, соответствует, не содержит и не соответствует шаблону регулярных выражений