为什么在下面:
echo this is a line. | grep -o -E "[a-z]+\."
结果是line.
又不是this is a line.
?
正则表达式没有字边界或任何其他限制。
答案1
[a-z]
a
只匹配的字符z
。它们与空格字符不匹配。当您还想匹配空格字符时,您必须明确地说:[a-z ]
。
答案2
该-o
选项指示 grep 将输出限制为仅与模式匹配的行部分。
重新运行命令-o
,结果确实是
this is a line.
为什么在下面:
echo this is a line. | grep -o -E "[a-z]+\."
结果是line.
又不是this is a line.
?
正则表达式没有字边界或任何其他限制。
[a-z]
a
只匹配的字符z
。它们与空格字符不匹配。当您还想匹配空格字符时,您必须明确地说:[a-z ]
。
该-o
选项指示 grep 将输出限制为仅与模式匹配的行部分。
重新运行命令-o
,结果确实是
this is a line.