Найти японский почтовый индекс в пункте с помощью регулярных выражений PHP

1

Японский почтовый индекс имеет такую структуру, как 123-5678, я создаю шаблон "/\ d {3} [-]\d {4}\b/g", и у меня есть такой абзац

Sample text for testing:
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 12555553-3456 000-1245 145-333333
0123456789 +-.,!@#$%^&*();\/|<>"'
12345 -98.7 3.141 .6180 9,000 +42
555.123.4567    +1-(800)-555-2468
[email protected]    [email protected]
www.demo.com    http://foo.co.uk/
http://regexr.com/foo.html?q=bar

Я тестирую patten в http://www.regexr.com/, я получаю результаты 553-3456, 000-1245 и 555-2468, но я хочу найти любую строку, не содержащую 1, 2,... письмо непрерывны до и после: "3 буквы и минус-символ и 4 числовые буквы". Я имею в виду, что строка "+ 1- (800) -555-2468" не является результатом, который я хочу. Может быть 322-5588, но не xxx322-5588xxx. xxx - один или несколько символов символа или буквы. Пожалуйста, ознакомьтесь с http://www.regexr.com/ и моим шаблоном " /\ d {3} [-]\d {4}\b/g ", чтобы понять, чего я хочу.

Пожалуйста, помогите мне и извините за мой плохой английский.

  • 0
    Является ли 322-5588 действительным почтовым индексом?
  • 0
    Да, но не xxx322-5588xxx. ххх - это один или несколько цифр или букв
Показать ещё 1 комментарий
Теги:

2 ответа

0

Просто добавьте \b перед выражением:

/\b\d{3}[-]\d{4}\b/g
  • 0
    но строка "+ 1- (800) -555-2468" найдена: v
0

Если я правильно понял, в примере вы дали единственный результат, который вам нужен, это "000-1245".

Если это так, попробуйте следующее regex: /[\s?]\d{3}[-]\d{4}\b/g.

  • 0
    Строка '000-1245' является результатом, но когда я проверяю на regexr.com, он содержит пространство перед

Ещё вопросы

Сообщество Overcoder
Наверх
Меню