第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問使用Perl如何取指定字符之前的字符?

請問使用Perl如何取指定字符之前的字符?

子衿沉夜 2021-10-13 15:11:20
$Data=BRD1_EC2=3.887607(389.999986M,5)R =nail=2,17 value=0ohm PN=ZNO30V4.2JCMS1812 * TOP問題: 如何取"_"和最近的"="之間的所有的字符,EC2是個變量.
查看完整描述

2 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗 獲得超7個贊

 取指定字符之前的字符的方法是:
  perl -nle 'if(/^start:/ or /^end:/){ # 匹配 flag
  /([^:]+:)(.*)?\(?/; # 正則捕獲$1,$2,其中$1是start: 或 end:,$2是'('之前的部分
  if($1 eq "start:"){push @{$hash{$1}},$2;$s=$2;} # 如果$1是start:的話,存入key為$1,值為$2的hash中,另外,再保留一份$2給臨時變量$s,
  else{$hash{$s} = $1.$2} # 如果$1不是start:,即是end:, 則存入key為$s,值為$1.$2到hash中
  };
  END{
  use Data::Dumper;
  print Dumper \%hash; # 可以看下hash的結(jié)構(gòu)是什么,應(yīng)該會理解下面foreach的block部分
  foreach (sort {$a cmp $b} @{$hash{"start:"}}){
  print "start: ",$_,"\t",$hash{$_}
  }
  }' file

查看完整回答
反對 回復(fù) 2021-10-18
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊

方法有三種,一般可以使用字符串搜索找到位置,然后獲取子串,方法二是模式匹配,我說說方法三,使用split,例如你的例子:
$Data='BRD1_EC2=3.887607(389.999986M,5)R =nail=2,17 value=0ohm PN=ZNO30V4.2JCMS1812 * TOP';
($s1,$s2)=split($Data,'_');
($s1)=split($s2,'=');
print $s1;

查看完整回答
反對 回復(fù) 2021-10-18
  • 2 回答
  • 0 關(guān)注
  • 604 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號