繁体   English   中英

翻译正则表达式

[英]Translate regular expression

我想翻译这个JS正则表达式

^((8|\\+7)[\\- ]?)?(\\(?\\d{3}\\)?[\\- ]?)?[\\d\\- ]{7,10}$

在grep中使用。 以下所有电话号码均与其匹配:

+79261234567
89261234567
79261234567
+7 926 123 45 67
8(926)123-45-67
123-45-67
9261234567
79261234567
(495)1234567
(495) 123 45 67
89261234567
8-926-123-45-67
8 927 1234 234
8 927 12 12 888
8 927 12 555 12
8 927 123 8 123

我尝试了很多变体,但没有人适合我。

我没有测试您的模式,尽管需要考虑以下几点:

[\\- ]应该改为[- ][ -]

(在字符类[]如果是第一个或最后一个,则不需要转义破折号)。

[\\d]可能会失败,因此请使用[0-9][:digit:]

因此,这使您拥有:

grep -E "^((8|\+7)[ -]?)?(\(?[0-9]{3}\)?[ -]?)?[0-9 -]{7,10}$" file

egrep

egrep "^((8|\+7)[ -]?)?(\(?[0-9]{3}\)?[ -]?)?[0-9 -]{7,10}$" file

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM