在What regular expressions can never match?/$./
作爲回答給出。我玩了一下,發現以下兩行代碼產生不同的輸出。第二場比賽,但第一場比賽沒有。誰能解釋爲什麼?
$ printf 'a\nb\n' | perl -0777 -ne 'print if m/$./m'
$ perl -0777 -e '$_="a\nb\n"; print if m/$./m'
此外,請注意,在下面的添加<>導致匹配失敗:
$ printf 'a\nb\n' | perl -0777 -e '$b = "a\nb\n"; say $b =~ m/$./m'
$ printf 'a\nb\n' | perl -0777 -e '$b = "a\nb\n"; <>; say $b =~ m/$./m'
(即,第一打印 '1' 時,第二打印一個空行)
你可以用'-E',而不是'-e'它做同樣的事情-e'use功能「:5.10'' =>' perl -0777 -wE'$ b =「a \ nb \ n」;說$ b =〜m /$./ m'' – 2009-12-04 18:11:15
@Brad:感謝'-E'提示! – 2009-12-04 18:30:41