0
我在Ubuntu 10.10上使用GNU grep 2.6.3,並且正在爲即將到來的培訓課程準備好正確的正則表達式技巧,並在以下方面獲得意外打擊。與grep意外的正則表達式匹配
我有一個用下面的內容strings.regex.txt文件名爲:
STRING1 Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)
STRING2 Mozilla/4.75 [en](X11;U;Linux2.2.16-22 i586)
此grep命令:
grep 'x[0-9A-Z]' strings.regex.txt
結果:
STRING1 Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)
STRING2 Mozilla/4.75 [en](X11;U;Linux2.2.16-22 i586)
我預計今年作爲結果:
STRING2 Mozilla/4.75 [en](X11;U;Linux2.2.16-22 i586)
任何人都可以解釋爲什麼我得到上述結果嗎? grep輸出的第一行不包含正則表達式x [0-9A-Z]的匹配項。它可以在x [0-9a-z]或x [0-9A-Za-z]或許多其他正則表達式上匹配。我學習和理解正則表達式的方式。它不應該匹配。
這裏有一些額外的grep命令和輸出結果:
grep -o 'x[0-9A-Z]' strings.regex.txt
x2
(我預計它支持我目前正則表達式的理解。)
grep -oc 'x[0-9A-Z]' strings.regex.txt
2
(我沒想到這我期待1)
grep -c 'x[0-9A-Z]' strings.regex.txt
2
(我沒有想到這個,我預期1)。
由於弗雷德裏克。這觸及了頭部。 – user1393573
很高興我能幫到你。歡迎來到SO,如果你喜歡答案,不要忘了投票並接受。閱讀常見問題。保持他們的帖子來臨 –