Re: [問題] 回傳抓到數值的位置
※ 引述《adu (^_^)》之銘言:
: ※ 引述《deh3215 ()》之銘言:
: : #!/usr/bin/perl
: : my $mainstring = "12345678901234567890HERE12345678901234567890";
: : my $substring = "HERE";
: : print my $first = index($mainstring, $substring);
: : 結果:20 #---從0開始
: : 終止位置加HERE長度就可求出.......
: 請問版大,想要從一串字元中把 特定字元前後、位置 抓出
: i.e.
: "123456here7890A1234567890Bhere1234567890C12wow34567890D"
: ^^^^ ^^^^ ^^^
: 抓出456here789、90Bhere123、C12wow345
: 該用甚麼方法?
不知道下面的程式符不符合你的要求?
#!/usr/bin/perl
my $all_line = "12345678901234567890HERE12345678901234567890";
my $pattern = qr/.{3}?(HERE|HOME|WOW)(.{3}?)/i;
my ($end, $start);
while ($all_line =~ m/$pattern/g) {
$end = pos($all_line) - length($2) - 1;
$start = $end - length($1) + 1;
print "$& $start $end\n";
}
# ------
其輸出結果為
890HERE123 20 23
其中 20 和 23 代表 HERE 在字串 $all_line 中的起始和終止位置
(index 從 0 開始)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.230.108
推
04/07 10:29, , 1F
04/07 10:29, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章