• 締切済み

Perlで苗字と名前の入れ替えしたいです。

Yamamoto TaroをTaro Yamamotoにしたいです。ただし間のスペースの個数は維持したいんですが・・・ Perlで簡単にやる方法ありますか・・・

みんなの回答

  • my9uest
  • ベストアンサー率0% (0/0)
回答No.4

手っ取り早いのは、正規表現の置換を使うことです。 my $string = 'Yamamoto Taro'; $string =~ s/^(\S*)(\s+)(\S*)$/$3$2$1/; print $string, "\n"; # Taro Yamamoto ######################################## $_ = 'Yamamoto Taro'; s/^(\S*)(\s+)(\S*)$/$3$2$1/; print $_, "\n"; # Taro Yamamoto

回答No.3

my $string = 'Yamamoto Taro'; if ($string =~ m/(\S+)(\s+)(\S+)/) { $string = $3 . $2 . $1; } print $string, "\n"; # Taro Yamamoto

  • SexyAkeko
  • ベストアンサー率41% (26/63)
回答No.2

Perl は、ここ5,6年触ってませんが (だってPHPの方が便利なんだもん。) spliteって使えませんか? http://www.perlplus.jp/func/string/index3.html 配列を用意して、空白で区切り、 配列の1番目と2番目を空白を挟めばよいかと。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

最初に登場する単語と末尾の単語を入れ替える、正規表現を使った置換を行うとか。

関連するQ&A

専門家に質問してみよう