sci*_*ci9 1 awk regular-expression mawk
我想将以下正则表达式与 awk 一起使用来验证电话号码:
echo 012-3456-7890 | awk '/^\(?0[1-9]{2}\)?(| |-|.)[1-9][0-9]{3}( |-|.)[0-9]{4}$/ {print $0}'
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
awk: line 1: regular expression compile failed (missing operand)
Run Code Online (Sandbox Code Playgroud)
由于此处使用的范围是固定长度的,因此您可以简单地写出整个范围[0-9]{3}=> [0-9][0-9][0-9]。而不是(| |-|.), ( |-|.)?- 尽管我很困惑:.除了空格和 之外,您还允许任何字符 ( )吗-?那么它可能只是.?因为空间并且无论如何-都匹配.。如果您匹配文字 period .,那么您应该使用[- .]?(前导-是为了避免解释为字符范围)。所以:
^\(?0[1-9]{2}\)?(| |-|.)[1-9][0-9]{3}( |-|.)[0-9]{4}$
Run Code Online (Sandbox Code Playgroud)
变成:
^\(?0[1-9][1-9]\)?[- .]?[1-9][0-9][0-9][0-9][- .][0-9][0-9][0-9][0-9]$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3650 次 |
| 最近记录: |