У меня есть регулярное выражение (?:^|[^\w])(\d{5}(?:[-\s]\d{4})?)(?:$|[^\w])
.Java Regex - Исключить 5-значные числа, прикрепленные hypen
Он ищет либо 5-значный почтовый индекс США, либо более длинную версию с 5 + 4 цифрами.
Однако это конкретное регулярное выражение также соответствует 5 цифрам для чисел следующей формы.
1111-11111
. Матч 11111
. Как я могу исключить этот тип дела?
Я попытался добавить гипноз к исключению в начале регулярного выражения так, (?:^|[^\w]|-)
, который не имел никакого эффекта.
Исправлено. (?:^| [^ \ Ш -]) (\ d {5} (: [- \ s] \ D {4})?) (: $ | [^ \ W]?). Добавлен hypen в неправильное место. – cjawahar
Вы действительно хотите исключить значения «11111» и «11111-1111» или только после дефиса? Я думаю, вы бы скорее отредактировали вопрос, например, вы хотите избежать соответствия '12345' в' 19875-12345'. –