Re: [問題] 判斷與取代
剛剛稍早po的不對 重po一次
%replace_list可以這樣生 (我改叫%h 短一點)
@h{'a' .. 'z'} = @h{'A' .. 'Z'} = (1 .. 9, map {0} 1 .. 17);
然後replace_abc_123可以這樣寫
$output = join "", map {exists $h{$_} ? $h{$_} : $_} split //, $string;
※ 引述《Neisseria (Neisseria)》之銘言:
: 提供某一種解法,參考看看...
: 假設一個雜湊 %replace_list,裡面放的是字母和數字的對應
: 即 a=1 b=2 c=3 ...
: 寫一個函數來替換字母,在轉換前,先將字母轉小寫
: sub replace_abc_123 {
: my $string = shift;
: my $output = "";
: for my $e (split //, $string) {
: if ($e =~ /[[:alpha:]]/) {
: $output .= $replace_list{lc $e};
: }
: else {
: $output .= $e
: }
: }
: return $output;
: }
: 然後用常規表示式將要替換的地方抓出來
: 用剛寫好的函數來替換掉即可
: 完整的例子可看連結 http://pastebin.com/Cf9Pk1hV
: 參考看看囉
: ※ 引述《sosojopoor (KeiDanX)》之銘言:
: : 各位板上前輩大家好
: : 小弟我剛接觸perl有些問題想請教
: : 主要是判斷&取代的問題
: : -----------原始碼-----------
: : (port I0 (direction INPUT))
: : (instance (rename ABC_1def "CBA.gh3") (viewRef X)
: : (portRef I0 (instanceRef ABC_1def))
: : (portRef I1 (instanceRef iJk_1def))
: : (port LO (direction OUTPUT))
: : (portRef O (instanceRef ABC_1def))
: : -----------判斷&修改後-----------
: : (port I0 (direction INPUT))
: : (instance (rename 123_1456 "321.783") (viewRef X)
: : (portRef I0 (instanceRef 123_1456))
: : (portRef I1 (instanceRef 901_1456))
: : (port LO (direction OUTPUT))
: : (portRef O (instanceRef 123_1456))
: : 有兩個關鍵字分別為"rename"和"instanceRef"
: : 1.rename
: : 判斷到有rename後將第一個與第二個空白鍵中的a-Z換成數字
: : 若超過9則為0 也就是a/A=1 b/B=2 ... i/I=9 j/J=0
: : 同時隨後兩個"內的字串依照上述取代
: : 2.instanceRef
: : 判斷到有rename後將第一個空白鍵與第一個)內的a-Z換成數字
: : 取代的規則與前述相同
: : 嘗試使用if判斷與tr
: : 但一直卡在只取代 第一與第二個空白鍵內的a-Z 這邊
: : 請問有人知道該如何處理嗎? 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.171.239
※ 文章網址: http://www.ptt.cc/bbs/Perl/M.1404223470.A.D55.html
推
07/02 00:58, , 1F
07/02 00:58, 1F
→
07/02 01:00, , 2F
07/02 01:00, 2F
→
07/02 01:00, , 3F
07/02 01:00, 3F
推
07/02 01:02, , 4F
07/02 01:02, 4F
→
07/02 01:02, , 5F
07/02 01:02, 5F
推
07/02 08:23, , 6F
07/02 08:23, 6F
推
07/02 14:14, , 7F
07/02 14:14, 7F
推
07/02 17:20, , 8F
07/02 17:20, 8F
推
07/03 08:05, , 9F
07/03 08:05, 9F
→
07/03 16:43, , 10F
07/03 16:43, 10F
推
07/04 23:40, , 11F
07/04 23:40, 11F
→
07/04 23:41, , 12F
07/04 23:41, 12F
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章