人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlである文の?先頭から指定された「単語数」分の単語を取得する、?最後から指定された「単語数」分の単語を取得する、?指定された「開始位置」から指定された「単語数」分の単語を取得するということがしたいです。できれば正規表現で
ちなみに分の途中にカンマやピリオドがある場合は最初にスペースと置換しておこうとおもっています。


単語数:3
開始位置:4

原文
The concept of language errors is a fuzzy one.
取得したい文字列
?先頭から指定された「単語数」分の単語を取得するの場合
The concept of
?最後から指定された「単語数」分の単語を取得する
a fuzzy one
?指定された「開始位置」から指定された「単語数」分の単語を取得する
language errors is


おしえてくださいよろしくお願いします。

●質問者: akikosato
●カテゴリ:コンピュータ 学習・教育
✍キーワード:ONE Perl ピリオド 単語 文字列
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● Kiichigo
●10ポイント

http://www.hatena.ne.jp/1101996039#

人力検索はてな - perlである文の?先頭から指定された「単語数」分の単語を取得する、?最後から指定された「単語数」分の単語を取得する、?指定された「開始位置」から指定された「単語数..

$t = ”The concept of language errors is a fuzzy one.”;

$n = 3;

$s = 4;

print ”1 $1¥n” if $t =~ /((¥S+¥s*){$n})/;

print ”2 $1¥n” if $t =~ /((¥S+¥s*){$n}$)/;

print ”3 $2¥n” if $t =~ /(¥S+¥s*){$n}((¥S+¥s*){$n})/;


2 ● amagami
●10ポイント

http://www.hatena.ne.jp/?

はてな

このような感じでどうでしょう?

$word = ”The concept of language errors is a fuzzy one.”;

$start = 4;# 開始位置

$span = 3;# 単語数

#-- 1 --

$first = $word;

$first =~ /^((¥w*¥s){$span})/;

print $1, ”¥n”;

#-- 2 --

$end = $word;

$end =~ /((¥w*¥s?){$span})¥.$/;

print $1, ”¥n”;

#-- 3 --

$start--;# 開始位置は1減らしておく

$middle = $word;

$middle =~ /^(¥w*¥s){$start}((¥w*[¥s¥.]){$span})/;

print $2, ”¥n”;


3 ● kn1967
●20ポイント

http://cocohome.hp.infoseek.co.jp/perl_ref/split.html

Perl Reference:split

splitでアレイに格納すれば好きな部分だけ取り出せますよ。

◎質問者からの返答

そうですね。でも具体的に知りたかったんです。できれば正規表現で


4 ● GEN111
●30ポイント

http://www.din.or.jp/~ohzaki/regex.htm

Perl正規表現雑技

# 単語にアポストロフィが含まれる場合は考慮していません。

my $str = ’The concept of language errors is a fuzzy one.’ ;

my $num = 3 ;

my $start = 4 ;

my $get1 = ($str =~ /^((¥w+(¥b|¥s)){$num})/)[0] ;

my $get2 = ($str =~ /((¥w+(¥b|¥s)){$num})(¥W)*$/)[0] ;

my $get3 = ($str =~ /^(?:(?:¥w+(?:¥b|¥s)){@{[$start-1]}})¥W+((¥w+(¥b|¥s)){$num})/)[0] ;

print <<”result” ;

$get1

$get2

$get3

result

exit ;

◎質問者からの返答

できました ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ