OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

? - 匹配元素零次或一次

这个量词实际上意味着“使前面的元素成为可选的”。 假设我们想检查一个电话号码的有效性,并且我们认为一个电话号码如果匹配这两种形式中的任何一种,则它是有效的:

(NNN) NNN-恩恩恩恩恩恩-

其中“n”是一个数字。 我们可以构造一个这样的正则表达式:

^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$

在这个表达式中,我们在括号字符后面加上问号来表示它们将被匹配零次或一次。 同样,由于括号通常是


元字符(在 ERE 中),我们在它们前面加上反斜杠,使它们被视为文字。

让我们试试看:



[我@linuxbox ~]$ 回声“(555)123-4567”| grep -E '^\(?[0-9][0-9][0-9]

\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

(555) 123-4567

[我@linuxbox ~]$ 回声“555 123-4567” | grep -E '^\(?[0-9][0-9][0-9]\)

? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

+555-123-4567

[我@linuxbox ~]$ 回声“AAA 123-4567”| grep -E '^\(?[0-9][0-9][0-9]\)

? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

[我@linuxbox ~]$

[我@linuxbox ~]$ 回声“(555)123-4567”| grep -E '^\(?[0-9][0-9][0-9]

\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

(555) 123-4567

[我@linuxbox ~]$ 回声“555 123-4567” | grep -E '^\(?[0-9][0-9][0-9]\)

? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

+555-123-4567

[我@linuxbox ~]$ 回声“AAA 123-4567”| grep -E '^\(?[0-9][0-9][0-9]\)

? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$'

[我@linuxbox ~]$


在这里我们看到表达式匹配电话号码的两种形式,但不匹配包含非数字字符的形式。


OnWorks 的顶级操作系统云计算: