[英]Search and replace a special character in perl
我想搜索一個字符並將其替換為字符串。 首先,我搜索“:”並將其替換為“to”。 接下來我想搜索 '$' 並將其替換為 'END'。 這是我試過的代碼。 在下面的代碼中,它適用於第一個字符,但不適用於第二個字符。 我嘗試使用反斜杠來轉義特殊字符 '$' 但它仍然不起作用。 我還可以做些什么?
$string = "[9:8],
if ($string =~ /^.*:+/){
$stringreplaced =~ s/:/to/g;
}
elsif ($string =~ /^.*\$+/){
$stringreplaced =~ s/\$/END/g;
}
首先,您發布的代碼甚至無法編譯,但您說它確實運行了。 僅發布您已運行的代碼。
其次,您正在匹配錯誤的字符串。 您正在檢查$string
包含該字符,但您替換了$stringreplaced
的字符。 始終使用use strict; use warnings;
use strict; use warnings;
. 這將捕獲此錯誤。
第三,您只檢查字符( :
或$
)是否在第一行。 這是因為.
不匹配沒有/s
換行符。
最后,您只檢查字符串是否包含$
如果它不包含:
因為您使用了elsif
。
以下是您所需要的:
$string =~ s/:/to/g;
$string =~ s/\$/END/g;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.