如何在不將Perl作爲轉義字符的情況下打印地址字符串?我不想通過添加更多轉義字符來更改字符串。如何防止Perl將解釋爲轉義字符?
回答
這取決於你在逃避什麼,但類似Quote的操作員可能會提供幫助。
請參閱perlop手冊頁。
你在問什麼叫做插值。見"Quote-Like Operators"文檔在perldoc perlop,但更具體地做到這一點是與被稱爲「這裏的文檔」的語法方式結合單引號:
單引號表示將文本與沒有字面上的處理對其內容進行插值。這與單引號字符串類似,只是反斜槓沒有特殊含義,\被視爲兩個反斜槓,而不是像其他每個引用構造中的反斜槓那樣。
這是在perl中引用的唯一形式,不需要擔心轉義內容,這是代碼生成器可以並且很好利用的東西。
例如:
my $address = <<'EOF';
[email protected]\with\backslashes\all\over\theplace
EOF
您可能希望在其他各種報價運營商如qw
和qq
(正如我上面提到的在同一文件)讀了起來,因爲它們是很常用的併爲其他更加冗長的逃避內容的方式做好速記。
我也想過那個!出於某種原因,我認爲它仍然會插入反斜槓。愚蠢的Python使我混淆了我的字符串插值。 (唯一需要注意的是這會增加一個可能不希望的數據末尾添加新行) – 2010-01-22 07:52:30
@Chris:確實,在這種情況下,substr()或chomp()會很好地修理它。 – Ether 2010-01-22 08:07:09
但是,不要忘記,你可以逃避'和\甚至在單引號的字符串。我應該改變文檔以指出這一點。 :) – 2010-01-22 18:49:26
使用單引號。例如
print 'lots\of\backslashes', "\n";
給
lots\of\backslashes
如果你想插變量,使用.
運算符,如
$var = "pesky";
print 'lots\of\\' . $var . '\backslashes', "\n";
請注意,您必須在年底轉義反斜線字符串。
作爲替代方案,你可以使用join
:
print join("\\" => "lots", "of", $var, "backslashes"), "\n";
我們可以給更多有用的答案,如果你想給我們的示例代碼。
使用backslah兩次,
print "This is a backslah character \\";
- 1. 如何防止Perl將雙反斜槓解釋爲單反斜槓字符?
- 2. 如何防止JAXB轉義字符串
- 3. mysql如何解釋轉義字符串?
- 4. EXPECT如何將一個轉義字符解釋爲一個命令字符
- 5. 防止PHP解析字符串中的轉義字符
- 6. Perl - 如何將轉義序列轉換爲字符串?
- 7. 如何防止GNU Make解釋字符串?
- 8. 如何將轉義字符轉換爲Perl中的實際特殊字符?
- 9. 如何防止MS Access VBA將對象轉換爲字符串?
- 10. 無論如何,以防止轉換轉義字符的innerHTML/$。html?
- 11. 防止轉義字符串c#
- 12. 防止json_encode添加轉義字符
- 13. 將轉義字符解釋爲SAS中的陣列
- 14. 如何防止vim將Makefile目標解釋爲模式行?
- 15. 如何防止iPhone將「AD 800-1200」解釋爲電話號碼?
- 16. 如何防止將decimal.TryParse轉換爲「。」爲「。」?
- 17. 用perl解碼unicode轉義字符
- 18. Perl解釋器:將'\ n'轉換爲換行符?
- 19. 如何防止c解釋sed
- 20. 如何在perl中轉義'$'字符?
- 21. 如何防止將「^」轉換爲上標?
- 22. 防止解釋反斜槓轉義的「回聲」
- 23. 如何將字符串轉換爲Perl中的unicode字符串
- 24. 如何防止在URL中轉義字符的window.location.pathname
- 25. 如何防止在Python中自動轉義特殊字符
- 26. 如何防止Uglify在字符串中轉義「</ script」?
- 27. 如何將印度語字符轉換爲Unicode轉義字符
- 28. 防止查詢字符串中的轉義字符
- 29. 如何解釋用戶輸入的轉義字符?
- 30. 如何解釋多行scala字符串中的轉義序列?
你能發佈是造成該問題的代碼? – 2010-01-22 06:44:04
對不起,你會走運。 '\\'是轉義字符,如果你想要一個字面值,你必須轉義它。 – 2010-01-22 07:07:25
@Chris:bzzt! :) – Ether 2010-01-22 07:37:05