В Всестороннее регулярное выражение для проверки номера телефона, принятый ответ содержит несколько комментариев. Один из комментариев от @jcmcbeth предлагает следующее простое регулярное выражение для использования для получения цифр номера телефона, представленного пользователем:
string.replace("[^\d+!x]", "")
Сразу же после комментария с этим предлагаемым регулярным выражением, другой вопрос спрашивает why the !x part?
, который затем отвечает в следующем комментарии: The !x is there to keep any "x" character from getting stripped
.
Это имеет смысл для меня, кроме восклицательного знака !
. Глядя на документацию для классов символов в регулярных выражениях, я не вижу, что восклицательный знак является особым символом, и мне не кажется, что для x
требуется предшествующий ему специальный символ. Кроме того, из обсуждения связанного вопроса я не вижу никаких комментариев, указывающих, что восклицательный знак может быть частью телефонного номера (что объясняет его включение в отрицательный класс символов).
Может кто-нибудь объяснить мне, почему присутствует восклицательный знак? Спасибо.