Я предлагаю купить себе эту книгу:.
http://www.amazon.ca/Regular-Expressions-Cookbook-Jan-Goyvaerts/dp/1449319432/ref=sr_1_1?ie=UTF8&qid=1444846344&sr=8-1&keywords=regular+expression+cookbook
, если вы боретесь за такие основные регулярные выражения (которые можно найти почти везде в сети) Это cookb ook, что означает, что решения можно использовать напрямую, как они есть в книге.
От страницы 249:
^\(?([0-9]{3})\)?[- ]?([0-9]{3})[- ]?([0-9]{4})
У вас есть три захвата группы:
первого и второго ([0-9]{3})
третьего ([0-9]{4})
Вы можете использовать эти группы захвата, чтобы вернуть другой раздел телефона номер. Используйте неконвертирующую группу (?:)
для повышения производительности (в этом контексте это не должно быть необходимо, если вы не используете цикл).
Это, если для необязательных круглых скобок \(?
и \)?
.
Вам нужно избежать скобки, поскольку она используется для группировки в регулярном выражении. Значок вопроса (?) Делает предыдущий элемент или группу необязательным.
Используйте [- ]?
, чтобы сделать пробел и дефис необязательным между последовательностью цифр.
Дополнительная заметка: Это довольно общее регулярное выражение, поэтому оно должно быть совместимо с любым языком программирования.
Для этого вы должны знать это событие, хотя общая структура регулярного выражения практически такая же, существуют существенные различия между различными языковыми реализациями для улучшенных/расширенных функциональных возможностей.
В следующий раз, вы должны также указать, в какой язык программирования вы хотите регулярное выражение (на примере: PHP, Javascript и т.д.)
Вы должны показать, что вы уже пробовали. Даже если вы просто составляете некоторые вещи, которые выглядят неопределенно, как регулярное выражение. Но некоторые усилия с вашей стороны ожидаются. – lintmouse
Возможный дубликат [Регулярное повторение] [http://stackoverflow.com/questions/8634139/phone-validation-regex) –