• 締切済み

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

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

  • Perl
  • 回答数4
  • ありがとう数6

みんなの回答

  • 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

  • ユニークな文字列を作りたい。

    C♯、.NET FrameWordk2.0環境です。 戻り値として32~35桁のユニークな文字列(半角英数字のみ)を返すメソッドを 作りたいと思っています。 GUIDを発行してやれば良いかと思ったんですが、ハイフンが入っていたり、 アルファベットが大文字小文字混じっていたり(小文字のみにしたい)で、そのままでは 使えません。 発行したGUIDを、サクッと半角英数字(英字は小文字に置換)できるような方法は ないでしょうか? または、もっと簡単にユニークな文字列を発行できる方法がありましたら、ご教授 いただけるとありがたいです。 宜しくお願いします。

  • エクセル 文字列の中から数字を抽出する方法

    エクセル 文字列の中から数字を抽出する方法 以前 QNo.5823420 で質問させて頂いたんですが 再度質問させてください。 "オーダー番号"+"半角スペース"+"部品型番"+"半角スペース"+"個数"+"半角スペース"+"部品名" というような文字列の中から個数の数のみを抽出する方法を教えてください。 "文字列"+"半角スペース"+"文字列"+"半角スペース"+・・・と文字列の繋がる数は決まってませんので 個数は何番目のスペースの後にくるかは不定です。 数量の半角"ケ"とその前の半角スペースまでの間の数字を抽出したいです。 例1)文字列 :ABC110 XXYYZZ5566 2ケ ****   抽出文字:2 例2)文字列 :ABC XYZ 5566 DDEE11 3ケ FFGG   抽出文字:3 よろしくお願いします。

  • Excelでハイフンが入った文字列の抽出について

    A列に『12-1』、『1-5-10』、『14-15-6-3』など1桁また2桁の数字がハイフンで区切られた文字列があるとします。 そこからB列には左から2番目の数字、C列には右から2番目の数字、D列には1番右端の数字を関数で抽出したいのですが、出来ないでしょうか。 全部半角で、必ず数字は二つ以上あり、桁数は2桁までです。下記の画像のようにしたいです。 http://uproda.2ch-library.com/801593yFu/lib801593.jpg

  • スペースを含んだ文字列から文字列の抽出

    エクセルバージョン2007 スペースを含む文字列で、A列に文字列がある時、以下の式を組んで文字列を抽出しています。 先頭にIDの数字が有る場合は、それぞれの目的に合った文字列を抽出しています。 B1=LEFT(A1,SEARCH(" ",A1,1)-1) C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1) 3 3df-32654-10 CCCCHH 10 1ab-12345-00 AAABBBB この文字列の場合、B列に3と10が表示、C列に 3df-32654-10 1ab-12345-00が表示されます。 先頭に、IDの無い文字列は以下の様な構成です。 6rt-95132-00 PPPKKK この文字列の場合、B列に6rt-95132-00、C列にPPPKKKが表示されてしまい、この場合、IDの数字が無い場合はB列には表示させない又は、C列に6rt-95132-00させたいと思っています。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • 全角半角考慮した文字列分割

    A列           B列         C列 あいうえおかきくけこ  あいうえ      おかきくけこ アイウエオカキクケコ   アイウエオカキクケ  コ あいうえオかきくけこ   あいうえオ    かきくけこ A列に全角半角混在のテキスト項目があります。 B列、C列に以下のルールで分割したいのですが、Excel関数で 実現可能でしょうか?可能な場合は式をご教授して 頂けますでしょうか。宜しくお願い致します。 ※全角をバイト数指定で分割して文字化けしないように 全角半角を考慮して分割したいと考えております。 B列  A列9桁目が半角の場合は半角9文字 A列9桁目全角の場合は半角8文字(全角4文字)をB列へ C列  A列10桁目が半角の場合は、左端10桁目~半角9文字 A列10桁目が全角の場合は、左端9桁目~半角9文字

  • 文字列の抽出方法

    文字列より [] でくくられた半角英数字を取り出したいのですがいまいちわかりません。削除することはできたのですがどうやって取り出せばいいのかわかりません。 ▼例 こんにちは[test1234]こんばんわ ▼取り出す内容 test1234 以上宜しくお願いします。

    • ベストアンサー
    • PHP
  • エクセル 文字列の中から数字を抽出する方法

    エクセル 文字列の中から数字を抽出する方法 "オーダー番号"+"半角スペース"+"部品型番"+"半角スペース"+"個数"+"半角スペース"+"部品名" というような文字列の中から個数の数のみを抽出する方法を教えてください。 例)文字列 :ABC110 XXYYZZ5566 2ケ ****   抽出文字:2 オーダー番号、部品型番、部品名の中にも数字は入っています。 数量の後には半角カタカナの"ケ"+"半角スペース"は必ず入ります。 よろしくお願いします。

  • ・エクセルで特定の条件に合う文字列を抜き出す方法を教えて

    ・エクセルで特定の条件に合う文字列を抜き出す方法を教えて 例のようにA列の文字の中からカッコ内(4桁数字“ハイフン”7桁数字)を B列に表示するにはどうしたらよいでしょうか。 ちょっと面倒なのはカッコは複数ある場合があり(xxxx-xxxxxxx)の条件に 合ったものだけを隣のセルに表示したいのです。 カッコとカッコ内は半角でxは不特定な数字です。 (例) A1=あいうえお(abcde)かきくけこ(xxxx-xxxxxxx)さしすせそ B1=xxxx-xxxxxxx よろしくお願いいたします。

  • Excel2010:文字列の表示

    Excel2010で、添付画像のような文字列があるとき、V列に以下のような規則で表示することはできるでしょうか? ■規則 英数字は半角 カタカナは全角 スペースは全角 ハイフンは半角 ハイフン以外の記号は全角 それ以外は全角 自分としては、難しいのでたいしたお礼は言えないと思いますがよろしくお願いします。 回答よろしくお願いします。

  • 文字列の並び換え

    Visual BASIC 6で 文字列の並び換えの方法がわかりません 文字列には半角も全角もあって数字もあります。 if A$ < B$ then ではだめです。

専門家に質問してみよう