Q
Perl的串子
4
A
回答
5
兩個問題,我可以看到。
你的第一個問題是,你的s///
更換不被終止:
s/hello/c:\foo # fatal syntax error: "Substitution replacement not terminated"
s/hello/c:\foo/ # syntactically okay
s!hello!c:\foo! # also okay, and more readable with backslashes (IMHO)
你的第二個問題,你問到的一個,就是\f
被當作換轉義序列(ASCII 0x0C ),就像它會用雙引號,這不是你想要的。
您既可以逃避反斜槓,或讓變量插值「隱藏」的問題:
s!hello!c:\\foo! # This will do what you want. Note double backslash.
my $replacement = 'c:\foo' # N.B.: Using single quotes here, not double quotes
s!hello!$replacement!; # This also works
看看的報價及報價般的運營商在perlop
治療以獲取更多信息。
2
如果我理解你的要求,那麼這可能是像你以後:
$path = "hello/there";
$path =~ s/hello/c:\\foo/;
print "$path\n";
要回答你的問題,是的,你確實需要,因爲\f
是一種逃避反斜槓翻番在Perl字符串中「換頁」的順序。
+1
最後一句話是錯誤的,實際上'\ f'是* form feed *的有效轉義序列。 – daxim 2010-06-25 07:29:59
+0
確實,固定。換頁不是我經常使用的! – 2010-06-26 05:41:12
1
的問題是,你是不是逃避特殊字符:
s/hello/c:\\foo/;
會解決你的問題。 \
是一個特殊字符,所以你需要逃避它。 {}[]()^$.|*+?\
是元(特殊)字符,你需要逃脫。
相關問題
- 1. Perl錯誤子串
- 2. 的Perl:字符串中子字符串或子字符串中
- 3. 按perl字符串的子集排序
- 4. 在perl中搜索數組的子串
- 5. 刪除perl中的多個子字符串來自perl的字符串
- 6. 在Perl中提取子字符串?
- 7. 在perl中提取子字符串
- 8. 在perl中查找子字符串
- 9. Perl替換字符串中的第n個子字符串
- 10. 從Perl中的字符串生成子字符串
- 11. 使用perl搜索字符串中的未知子串
- 12. perl:字符串匹配找到最長的子字符串
- 13. 如何從Perl中的字符串中提取子字符串?
- 14. 拆分一個Perl字符串子串和一個空格
- 15. Perl子文檔
- 16. Perl的警告:(。)的串聯或串
- 17. Perl ForkManager子STDOUT子程序
- 18. Perl:找到兩個字符串的所有匹配的子字符串
- 19. 如何在匹配某個子串後從perl中的字符串中提取子串
- 20. Perl從另一個變量的子串創建變量
- 21. Perl的正則表達式與grep得到子字符串
- 22. 使用索引從Perl中的數組中提取子串
- 23. 在Perl中的文件比較 - 按行或子字符串
- 24. 如何使用perl獲取字符串的子部分?
- 25. 從Perl的子進程中獲取UTF字符串
- 26. Perl - 使用特定子串的文件比較
- 27. 由字符串製成的Perl子文件
- 28. 匹配子字符串與Perl中的空格
- 29. 如何消除perl中子串的重複
- 30. 從Perl中的哈希搜索子字符串匹配
當我讀到這個問題的標題(「Perl string sub」)時,我認爲這將是一個關於通過符號表查找動態調用*子程序的問題。 :) – pilcrow 2010-06-25 14:25:46