簡體   English   中英

在 perl 中搜索和替換特殊字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM