Suite 400 - 100 ABCDEF (Захват значений из 100)

Мне нужно регулярное выражение, которое могло бы найти 100 ABCDEF из входной строки Suite 400 - 100 ABCDEF. Следует отметить, что я создал регулярное выражение, как показано ниже, но оно выбирает значение из Suite.

[^-\s]\d.+

Конечно, просто дайте нам логику того, как мы должны соответствовать 100 ABCDEF.

Tim Biegeleisen 13.09.2018 17:19

Возможный дубликат Ссылка - что означает это регулярное выражение?

Paolo 13.09.2018 17:19

Также сообщите нам, какой инструмент / язык регулярных выражений вы используете.

Tim Biegeleisen 13.09.2018 17:21

Спасибо за быстрые ответы, и прошу прощения за мои ограниченные знания регулярных выражений. По сути, я извлекаю данные OCR из неструктурированного документа, и он возвращает номер набора / единицы в качестве префикса перед любым адресом. В основном у меня есть словарь, в котором хранятся названия улиц по всей Северной Америке, и я пытаюсь найти такие значения, как: 123 ABC Street 123 ABC Avenue Suite 123 - 123 ABC Rd (В этой строке я только собираюсь сопоставить 123 ABC Rd) Что касается названий улиц, у меня есть соответствующий словарь. [^ - \ s] \ d. + DictionaryMatch

Ankit 13.09.2018 17:24
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
18
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто поместите $ в конец вашего регулярного выражения. $ означает «конец строки». Также замените точку на [^-], чтобы она соответствовала только дефисам:

[^-\s]?\d[^-]+$

Рабочий пример: http://refiddle.com/refiddles/5b9a88ef75622d4ca9590000

Спасибо за ответ, он работает в большинстве сценариев, но я заметил, что следующий тип не работает: 5 ABC Bay SW.

Ankit 13.09.2018 17:48

Кроме того, некоторые адреса, такие как 1 123 Abc Street, также выбирают 1 123 вместо 123.

Ankit 13.09.2018 17:56

Я думал, что дефис (на самом деле знак минус) обязателен. Или, чтобы справиться с этим, просто поместите ? после первого класса символов (который содержит знак минус). Это сделает его необязательным. Я обновил ответ и скрипку.

Alex Shesterov 13.09.2018 18:02

Спасибо Алекс, ваша помощь очень ценится

Ankit 13.09.2018 18:08

Поскольку вы пытаетесь сопоставить почтовый адрес в США, вам следует попробовать сопоставить номер, за которым следует одно или несколько слов:

\d+(?:\s+[A-Za-z.]+)+

Демо: https://regex101.com/r/y6n5jD/1

Другие вопросы по теме