• 締切済み

【Perl】特定文字列の抽出方法が分かりません。

$aに以下のように、 SNから始まる不規則な桁の半角数字 + 半角スペース + 半角の不規則な桁の英数字 が代入されているとして、 $a = "SN0123456789012345 Aabc1ef"; $bに、半角スペースより前の文字列(SN0123456789012345)のみを 代入するにはどのようなソースにするといいのでしょうか? 御教授お願いします。

みんなの回答

  • SHOO-3
  • ベストアンサー率56% (28/50)
回答No.4

あ、間違い substr($temp, 0, index($temp, ' ')); じゃなくて、 substr($a, 0, index($a, ' ')); だった。 ちなみに、正規表現を使わない分高速(だけどけたが小さければさほど差はない)

unipre
質問者

お礼

おかげさまで解決しました。 御丁寧且つ効率の良い内容での回答をありがとうございました。

  • SHOO-3
  • ベストアンサー率56% (28/50)
回答No.3

my $a= "SN0123456789012345 Aabc1ef"; $b = substr($temp, 0, index($temp, ' ')); substr で文字列$aを、0個目からindexで探したスペースのあるところ(長さ)までを切り出し、$bに代入しています。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

$b = (split / /, $a)[0];

unipre
質問者

お礼

おかげさまで解決しました。 回答をありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

($b) = ($a =~ /^(\S*)\s/);

unipre
質問者

お礼

おかげさまで解決しました。 回答をありがとうございました。

関連するQ&A

専門家に質問してみよう