2013年1月6日日曜日

開発環境

『初めての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 コメント:

コメントを投稿