作者 主題: perl 選取字串位置  (閱讀 3143 次)

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

poule

  • 懷疑的國中生
  • **
  • 文章數: 36
    • 檢視個人資料
perl 選取字串位置
« 於: 2005-11-14 20:07 »
代碼: [選擇]
#!/usr/bin/perl
$file_name="/root/p3-11.csv";
open(FHD, "$file_name") || die "$!\n";

@all=<FHD>;

close(FDH);
$i=0;
foreach $str (@all) {
        $i++;
        if ($str =~ /[0-9]\{4\}/){
        $pos = index($str, $str1);
        print "$pos";
        }
}


小弟想選取檔案內容 有連續4個數字的起始位置
但無法正確取得~不知哪裡有問題~還請各位先進能幫小弟一下
很多事情要做了才知道~

Pail

  • 俺是博士!
  • *****
  • 文章數: 1040
  • 性別: 男
    • 檢視個人資料
perl 選取字串位置
« 回覆 #1 於: 2005-11-14 20:27 »
你的 perl 還不太通的樣子...
$str1 是啥東東? 沒看到, 也沒定義...
\ 是 跳脫字元, 你把它跳掉了就沒作用了.


if ( $str =~ /(\d{4})/ )  {
    $str1 = $1 ;
     .....
}
Pail Luo.
Email: pail.luo@gmail.com

poule

  • 懷疑的國中生
  • **
  • 文章數: 36
    • 檢視個人資料
perl 選取字串位置
« 回覆 #2 於: 2005-11-14 22:12 »
感謝前輩的教導~
小弟確是剛接觸這個程式~
之前也沒啥程式經驗
可以再請問前輩一下~
若一行字串之內有很多4個為一組的數字又要如何一各各取出呢?
很多事情要做了才知道~

Pail

  • 俺是博士!
  • *****
  • 文章數: 1040
  • 性別: 男
    • 檢視個人資料
perl 選取字串位置
« 回覆 #3 於: 2005-11-15 09:36 »
用 while loop 如何..
一直做, 做到沒 match 就跳出就行了
Pail Luo.
Email: pail.luo@gmail.com