作者 主題: perl 怎麼利用正規表示式刪除特定字元  (閱讀 3275 次)

0 會員 與 1 訪客 正在閱讀本文。

iopklmm

  • 懷疑的國中生
  • **
  • 文章數: 71
    • 檢視個人資料

想請問各位

有一個字串有 # $ ^ 這三種符號 例如AA##BB$$CC^^ , 我想要把##$$^^刪除 , 我知道可以用

$String = "AA##BB$$CC^^";
$String =~ s/#//g;
$String =~ s/$//g;
$String =~ s/^//g;

但是不知道要怎麼寫才能夠表達出 #或$或^ 的正規表示式

謝謝

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: perl 怎麼利用正規表示式刪除特定字元
« 回覆 #1 於: 2013-06-05 22:00 »

想請問各位

有一個字串有 # $ ^ 這三種符號 例如AA##BB$$CC^^ , 我想要把##$$^^刪除 , 我知道可以用

$String = "AA##BB$$CC^^";
$String =~ s/#//g;
$String =~ s/$//g;
$String =~ s/^//g;

但是不知道要怎麼寫才能夠表達出 #或$或^ 的正規表示式

謝謝

用 『 | 』

代碼: [選擇]
$ echo 'AA##BB$$CC^^' | perl -e '$_=<STDIN>; ~s/#|\^|\$//g;print;'
AABBCC
$


=====
好久沒玩perl,不知道這樣用對不對  :D

davidju

  • 懷疑的國中生
  • **
  • 文章數: 33
    • 檢視個人資料
Re: perl 怎麼利用正規表示式刪除特定字元
« 回覆 #2 於: 2013-06-06 11:55 »
#!/usr/bin/perl
use strict;
use warnings;

$_ = 'AA##BB$$CC^^';
if (/(\w+)\#\#(\w+)\$\$(\w+)\^\^/) {
        print $1.$2.$3;
}

 ;) ;) ;)

hongbin

  • 憂鬱的高中生
  • ***
  • 文章數: 101
    • 檢視個人資料
Re: perl 怎麼利用正規表示式刪除特定字元
« 回覆 #3 於: 2013-06-06 18:21 »
$string = 'AA##BB$$CC^^';
$string=~s/([#\$^]+)//g;
print "$string\n";