開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の14章(文字列処理とソート)、14.5(練習問題)3を解いてみる。
その他参考書籍
3.
コード(BBEdit)
sample.pl
#!/usr/bin/env perl use strict; use warnings; use utf8; use 5.016; binmode STDIN, ':utf8'; binmode STDOUT, ':utf8'; print "文字列: "; chomp(my $str = <STDIN>); while(1){ print "部分文字列: "; chomp(my $substr = <STDIN>); last if $substr =~/^\s*$/; my @numbers = (); my $where = index($str, $substr); while($where != -1){ push @numbers, $where; $where = index($str, $substr, $where + 1); } print "@numbers\n"; }
入出力結果(Terminal)
$ ./sample.pl 文字列: This is a test. 部分文字列: is 2 5 部分文字列: a 8 部分文字列: t 10 13 部分文字列: $
ちなみにJavaScriptの場合。
コード(BBEdit)
var str = $('#text_str').val(); var substr = $('#text_substr').val(); var nums = []; var i = str.indexOf(substr); while(i !== -1){ nums.push(i); i = str.indexOf(substr, i + 1); } $('#pre0').text(nums);
pythonの場合。
sample.py
コード(BBEdit)
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import re s = input("文字列: ") while 1: sub_s = input("部分文字列: ") if re.search(r"^\s*$", sub_s): break nums = [] i = s.find(sub_s) while i != -1: nums.append(i) i = s.find(sub_s, i + 1) print(nums)
入出力結果(Terminal)
$ ./sample.py 文字列: This is a test. 部分文字列: is [2, 5] 部分文字列: a [8] 部分文字列: t [10, 13] 部分文字列: $
0 コメント:
コメントを投稿