在Perl中是否有一種方法來保存和打印字符串變量中的所有反斜槓? 例如:在Perl字符串中保留反斜槓
$str = 'a\\b';
輸出是
a\b
,但我需要
a\\b
的問題是不能以任何方式處理字符串逃避,因爲我 反斜槓必須從數據庫中讀取複雜的正則表達式,並且不知道它們出現在哪個組合和編號中,並且必須完全按照它們在Web上打印它們頁。
我試着用模板工具包和html和html_entity過濾器。它的工作原理迄今爲止唯一的方法是使用一個單一這裏引用文件:
print <<'XYZ';
a\\b
XYZ
但我不能插值的變量,這使得該解決方案毫無用處。
我試圖寫一個字符串到網頁,文件和殼,但沒有運氣,總是一個反斜槓消失。也許我完全在錯誤的軌道上,但什麼是正確的方式來打印複雜的正則表達式,包括所有組合和數字中的反斜槓,而沒有任何更改?
換句話說: 我有一個數據庫包含數百個正則表達式作爲字符串數據。我想用Perl讀取它們,並將它們精確地打印在網頁上,就像它們在數據庫中一樣。 許多管理員都對這些正則表達式有所改變,所以我不知道如何以及如何逃避。 一個典型的例子是這樣的: 'C:\\test\\file \S+'
,但它可能會改變第二天 '\S+ C:\\test\\file'
也許一個正確的結論是準確逃脫每反斜線一次在組合中,無論它出現?這意味着它可以將它們加倍。那麼問題就沒有我擔心的那麼大了。我在bash上測試了它,它連續運行了兩個甚至三個反斜槓(4個backslaches打印2個反斜槓和3個反斜槓)。
請舉例說明你想做什麼。一旦反斜槓在變量中,它們將保持不變,並且如果它們插入到字符串中,它們將正確顯示。將一對反斜槓放入字符串*的唯一方法是將它們加倍,但這不應該成爲問題。有幾個軟件層將反斜槓視爲轉義字符,因此您的問題可能不在Perl內。 – Borodin 2013-04-23 12:09:47