1
如果我使用下面的代碼,正則表達式組不顯示預期的Unicode字符串。有人可以向我解釋我是否犯了一個錯誤,或者甚至有可能它是perl本身的一個固有問題。Perl正則表達式組不正確顯示Unicode字符
echo 'éá'|perl -ne 'if (/(\P{L}+)/) { print $1; }'
�
即使我藉此explanation考慮,並添加UTF-8編碼層到perl,它仍然沒有給我字符串「EA」爲正則表達式組:
echo 'éá'|perl -CS -ne 'if (/(\P{L}+)/) { print $1,$_; }'
éá
的該組的輸出似乎爲空,幷包含換行符號。
任何幫助,非常感謝。
使用'/(\ p {L} +)/'中,使用相反的正則表達式。 –
What @WiktorStribiżew說的是''P'大寫'P'意味着_不是其中之一,而'\ p'帶有一個小'p'就是其中的一個。 – simbabque
非常感謝您的快速回復。 –