* - 匹配元素零次或多次
像 ? 元字符 * 用于表示可选项目; 然而,不同于 ?,该项目可能出现任意次数,而不仅仅是一次。 假设我们想看看一个字符串是否是一个句子; 也就是说,它以大写字母开头,然后包含任意数量的大小写字母和空格,并以句点结束。 为了匹配一个句子的这个(非常粗略的)定义,我们可以使用这样的正则表达式:
[[:upper:]][[:upper:][:lower:]]*\.
该表达式由三项组成: 一个括号表达式包含 [:上:] 字符类,包含两个的括号表达式 [:上:] 和 [:降低:] 字符类和空格,以及用反斜杠转义的句点。 第二个元素以 * 元字符,以便在我们的句子中的前导大写字母之后,任何数量的大小写字母和空格都可以跟在它后面并且仍然匹配:
[我@linuxbox ~]$ 回声“这有效。” | grep -E '[[:upper:]][[:upper:][
:降低:] ]*\。'
这行得通。
[我@linuxbox ~]$ 回声“这有效。” | grep -E '[[:upper:]][[:upper:][
:降低:] ]*\。'
这有效。
[我@linuxbox ~]$ 回声“这不”| grep -E '[[:upper:]][[:upper:
][:降低:] ]*\。'
[我@linuxbox ~]$
[我@linuxbox ~]$ 回声“这有效。” | grep -E '[[:upper:]][[:upper:][
:降低:] ]*\。'
这行得通。
[我@linuxbox ~]$ 回声“这有效。” | grep -E '[[:upper:]][[:upper:][
:降低:] ]*\。'
这有效。
[我@linuxbox ~]$ 回声“这不”| grep -E '[[:upper:]][[:upper:
][:降低:] ]*\。'
[我@linuxbox ~]$
该表达式匹配前两个测试,但不匹配第三个,因为它缺少所需的前导大写字符和尾随句点。