8
A
回答
6
grep regex GNU extension:“\'”在整个输入的结束相匹配
-2
\是一个转义字符。这意味着'应该被视为文本来搜索,而不是作为控制角色。
3
这是一个非常奇怪的避风港grep
,我不知道如何解释它,但我必须注意,\'
不匹配任何字符。它看起来像它具有相同的含义$
:
$ echo x | grep "x\'"
x
$ echo xy | grep "x\'"
$ echo x | grep "\'x"
更新1
因为它在http://www.gnu.org/software/findutils/manual/html_node/find_html/grep-regular-expression-syntax.html陈述(感谢Richard Sitze的链接),它真正的含义$
相同。但同时,我已经注意到\'
和$
之间的差异:
$ echo x | grep 'x$'
x
$ echo x | grep 'x$$'
$ echo x | grep "x\'"
x
$ echo x | grep "x\'\'"
x
$ echo x | grep "x\'\'\'"
x
如你所愿,但事实并非如此的$
您可以指定\'
多次。必须只有一个$
。
另一个重要的评论。手册上说:
‘\'’ matches the end of the whole input
但严格来说,这不是事实,因为\'
比赛不仅整个输入的结束,但每一行也结束:
$ (echo x; echo y) | grep "\'"
x
y
$
究竟怎么做。
3
我不知道正则表达式的这一特点。但它作为end of the string定位点在regular-expressions.info上列出。
它只存在于GNU Basic和Extended Regular Expressions的所有正则表达式中,请参见compatibility chart了解更多信息。
相关问题
- 1. 与grep匹配的模式
- 2. Grep变量模式匹配
- 3. 为什么我的模式不匹配?
- 4. xml不匹配xsd模式 - 为什么?
- 5. 为什么这个模式不匹配
- 6. grep模式,匹配多个文件
- 7. 使用grep命令匹配模式
- 8. grep只从模式中精确匹配
- 9. 匹配模式并打印后匹配一个字的grep
- 10. 匹配使用grep并打印匹配的模式多种模式
- 11. 匹配的grep
- 12. 为什么grep返回不匹配的行
- 13. 为什么grep显示的行不匹配?
- 14. 为什么“grep -w”匹配以“。”结尾的字符串。或“$”?
- 15. 这是什么模式匹配?
- 16. 这是什么模式匹配算法?
- 17. 什么匹配模式// *目标?
- 18. 为什么此模式在匹配preg_match时与RewriteCond中的QUERY_STRING不匹配?
- 19. C++:为什么正则表达式模式“[+ -/*]”匹配字符串“。”?
- 20. grep计数和保存匹配不同,为什么?
- 21. 为什么调用系统grep比在Ruby中匹配要慢?
- 22. 为什么'csplit`和`grep`不一致就是否有匹配?
- 23. 为什么我的模式匹配集合在Scala中失败?
- 24. 为什么Scala的模式匹配不等同于isInstanceOf
- 25. 为什么Scala中的模式匹配不适用于变量?
- 26. 为什么我的模式匹配在Scala中失败?
- 27. 为什么模式匹配不在Haskell的封面列表中?
- 28. 为什么lazy模式匹配splitAt函数的版本更快?
- 29. 为什么lua的字符串模式匹配这样做?
- 30. 用grep匹配
但即使文本文件不包含单引号字符,grep仍然匹配文件中的所有行。我认为这是OP所要求的。 – theon 2012-07-28 08:48:54
是的,这很奇怪,grep匹配字面单引号的所有输入 – perreal 2012-07-28 08:51:07