2015-10-19 2 views
1

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

Sample text for testing: 
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 12555553-3456 000-1245 145-333333 
-.,[email protected]#$%^&*();\/|<>"' 
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 

Я проверить Паттен в 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' действительный почтовый индекс? – anubhava

+0

Да, но не xxx322-5588xxx. xxx - один или несколько символов символов или букв числа –

+0

Возможно, вы захотите использовать '\ b' (границу слова) или' \ D' (а не цифру) до и после шаблона. – deceze

ответ

0

Если я правильно понимаю, в примере, который вы указали, вы получите только «000-1245».

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

+0

Строка '000-1245' является результатом, но когда я проверяю http://www.regexr.com/, она содержит пробел перед –

0

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

/\b\d{3}[-]\d{4}\b/g 
+0

, но строка «+ 1- (800) -555-2468» находится: v –

Смежные вопросы