(57)【要約】【課題】複雑な選択処理の作成に代えて、容易に作成可能な命令の組み合わせにより、複雑な文字列選択処理を容易化する。【解決手段】文字列選択装置１は、選択対象情報９ａと、命令情報９ｂを入力する。文字列選択装置１は、０個以上の選択範囲要素を有する選択範囲集合を複数保持可能な選択範囲保持手段５を有する。文字列選択装置１は、第１選択範囲生成手段４により、選択対象情報９ａに基づく選択範囲集合に、正規表現からなる選択範囲生成規則を適用して、新しい選択範囲集合を生成する。文字列選択装置１は、第１選択範囲生成手段４が生成した選択範囲集合を、第２選択範囲生成手段６により集合演算して、所望の選択範囲要素を有する新しい選択範囲集合を生成する。【選択図】図１
2012073794.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
選択対象情報と、複数の選択範囲生成規則と集合演算情報を含む命令情報との入力を受け付け、
前記選択対象情報について０個以上の選択範囲要素を有する選択範囲集合を、前記複数の選択範囲生成規則のそれぞれに基づいて生成し、前記選択範囲集合を複数保持可能な選択範囲保持手段に保持させ、
前記集合演算情報に基づいて、前記選択範囲保持手段が保持する前記選択範囲集合を対象とする集合演算により前記選択範囲集合を生成する、
処理を実行することを特徴とする文字列選択方法。
【請求項２】
さらに、前記集合演算により生成された前記選択範囲集合を置換対象とし、置換対象とした前記選択範囲集合の前記選択範囲要素を置換文字列で置換する処理を実行することを特徴とする請求項１記載の文字列選択方法。
【請求項３】
さらに、
前記命令情報を複数保持可能な命令保持手段に、前記入力した命令情報を保持させ、
前記選択範囲集合の生成と、生成した前記選択範囲集合の前記選択範囲保持手段への保持とを、実行するための前記命令情報を、前記命令保持手段から順次読み出す、
処理を実行することを特徴とする請求項１記載の文字列選択方法。
【請求項４】
選択範囲保持手段は、前記選択対象情報のすべてを前記選択範囲要素とする前記選択範囲集合を保持することを特徴とする請求項１記載の文字列選択方法。
【請求項５】
前記選択範囲生成規則は、正規表現によって記述され、
前記正規表現に基づいて、前記選択対象情報から前記選択範囲要素を有する前記選択範囲集合を生成することを特徴とする請求項１記載の文字列選択方法。
【請求項６】
コンピュータに、
選択対象情報と、複数の選択範囲生成規則と集合演算情報を含む命令情報との入力を受け付け、
前記選択対象情報について０個以上の選択範囲要素を有する選択範囲集合を、前記複数の選択範囲生成規則のそれぞれに基づいて生成し、前記選択範囲集合を複数保持可能な選択範囲保持手段に保持させ、
前記集合演算情報に基づいて、前記選択範囲保持手段が保持する前記選択範囲集合を対象とする集合演算により前記選択範囲集合を生成する、
処理を実行させることを特徴とする文字列選択プログラム。
【請求項７】
選択対象情報を入力する情報入力手段と、
複数の選択範囲生成規則と集合演算情報とを含む命令情報を入力する命令情報入力手段と、
前記選択対象情報について０個以上の選択範囲要素を有する選択範囲集合を複数保持可能な選択範囲保持手段と、
前記複数の選択範囲生成規則のそれぞれに基づいて前記選択範囲集合を生成し、前記選択範囲保持手段に保持させる第１選択範囲生成手段と、
前記集合演算情報に基づいて、前記選択範囲保持手段が保持する１以上の前記選択範囲集合を対象とする集合演算により前記選択範囲集合を生成する第２選択範囲生成手段と、
を備えることを特徴とする文字列選択装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字列選択方法、文字列選択プログラム、および文字列選択装置に関する。
【背景技術】
【０００２】
電子データに対して、ある規則に従った置換処理を作成したいことがしばしばある。たとえば、編集対象データとして、図２１のような編集対象データ（Ｗｅｂページ用データ）２００があったとき、Ｗｅｂブラウザに表示するメールアドレス「inquiry@example.com」を太字表示に変更する場合を考える。
【０００３】
このとき、編集対象データ２００は、「inquiry@example.com」という文字列を（Ａ）、（Ｂ）、（Ｃ）の３か所含む。Ｗｅｂブラウザに表示するメールアドレスを太字表示に変更するために、文字列「inquiry@example.com」を文字列「<b>inquiry@example.com</b>」に置換することとなるが、置換対象となる文字列は、（Ｂ）、（Ｃ）の２か所である。そして、Ｗｅｂブラウザに表示するメールアドレスを太字表示に変更するために、（Ａ）は、置換対象とならない。
【０００４】
このように、まったく同じ文字列であっても文脈の中で置換対象となりえる場合と、置換対象となりえない場合とがある。このような場合に、テキストエディタを使って所望の置換対象文字列だけを選択して、置換をおこなうことは、容易である。しかしながら、テキストエディタを使った編集作業は、編集対象データが大きな場合に作業者にかかる負担が大きい。
【０００５】
置換処理を自動化するために、この置換規則を具体化して表現すると、ＨＴＭＬ（HyperText Markup Language）テキスト要素中の文字列「inquiry@example.com」を文字列「<b>inquiry@example.com</b>」に置換する、となる。ここで、ＨＴＭＬテキスト要素以外の文字列「inquiry@example.com」を文字列「<b>inquiry@example.com</b>」に置換すると、Ｗｅｂページの機能を一部損なうおそれがあるため、注意が必要である。この置換規則は、規則を具体的に表現できる場合、プログラミングによってその置換処理を作成することができる。
【０００６】
そして、この規則を具体的に表現する方法の１つに正規表現がある。正規表現は、データ置換処理を表現するのに適し、有限オートマトンについての構成を簡潔に表現することができる。
【０００７】
しかし、有限オートマトンは、各処理時点での状態を１つしか持たない。そのため、正規表現は、処理内容の組み合わせや選択反転などを直感的に記述することができず、複雑な置換処理を表現することが容易でないという問題がある。たとえば、置換対象文字列を図２１のような編集対象データ２００中のＨＴＭＬテキスト要素に限定（（Ａ）を置換対象文字列とせず、（Ｂ）、（Ｃ）を置換対象文字列とする）した置換処理は、正規表現によって表現することが容易でない。
【０００８】
そこで、このデータ置換処理に関連する技術として、いわゆるテンプレートエンジンがある（たとえば、特許文献１参照）。テンプレートエンジンは、置換の必要がないデータと置換対象部分をテンプレートにして、置換データを別のデータにすることで、編集対象データを切り分けて表現することを可能にする。たとえば、図２１の（Ｂ）、（Ｃ）だけを置換対象文字列とするテンプレートがあった場合（置換内容に適したテンプレートが作成された場合）、テンプレートエンジンは、利用可能性がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００１−２９０８１２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、一般的にはそのように都合良くテンプレートが作成されているとは限らず、テンプレートエンジンは、一般的に置換処理の作成を容易にしない。
また、たとえば、図２２に示す正規表現２１０のように編集対象データ２００中のＨＴＭＬテキスト要素以外を先に選択し、正規表現２１０との組み合わせで、図２１の（Ｂ）、（Ｃ）だけを置換対象文字列とすることが考えられる。しかし、これも先述の通り、有限オートマトンは各処理時点での状態を１つしか持たないため、単純な組み合わせでは目的とする置換処理を作成することはできない。
【００１１】
また、置換処理に限らず、検索処理など、その他の文字列操作処理においても、操作対象となる文字列を選択することは、容易でない。
そこで、本発明は、複雑な文字列選択処理を容易におこなうことができる文字列選択方法、文字列選択プログラム、および文字列選択装置の提供を目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、コンピュータが処理を実行する文字列選択方法が提供される。
コンピュータが、選択対象情報と、複数の選択範囲生成規則と集合演算情報を含む命令情報との入力を受け付け、前記選択対象情報について０個以上の選択範囲要素を有する選択範囲集合を、前記複数の選択範囲生成規則のそれぞれに基づいて生成し、前記選択範囲集合を複数保持可能な選択範囲保持手段に保持させ、前記集合演算情報に基づいて、前記選択範囲保持手段が保持する前記選択範囲集合を対象とする集合演算により前記選択範囲集合を生成する。
【発明の効果】
【００１３】
上記の文字列選択方法によれば、複雑な文字列選択処理を容易におこなうことができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態の文字列選択装置の機能ブロック図である。
【図２】第２の実施形態の置換装置の機能ブロック図である。
【図３】第２の実施形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【図４】第２の実施形態の命令種別定義を示す命令種別表である。
【図５】第２の実施形態の命令書式定義を示す命令書式表である。
【図６】第２の実施形態の命令解釈実行処理のフローチャートである。
【図７】第２の実施形態の選択命令の解釈実行処理のフローチャートである。
【図８】第２の実施形態の集合演算命令の解釈実行処理のフローチャートである。
【図９】第２の実施形態の集合演算の一例を示す図である。
【図１０】第２の実施形態の置換命令の解釈実行処理のフローチャートである。
【図１１】第２の実施形態の対象設定命令の解釈実行処理のフローチャートである。
【図１２】第２の実施形態の置換処理作成支援プログラムの実行画面の一例である。
【図１３】正規表現の一例を示す図である。
【図１４】第２の実施形態の命令文字列入力の一例を示す図である。
【図１５】第２の実施形態の置換処理作成支援プログラムの実行画面の一例である。
【図１６】第２の実施形態の置換処理作成支援プログラムの実行画面の一例である。
【図１７】第２の実施形態の置換処理作成支援プログラムの実行画面の一例である。
【図１８】第２の実施形態の置換処理作成支援プログラムの実行画面の一例である。
【図１９】第２の実施形態の置換処理作成支援プログラムの実行画面の一例である。
【図２０】第２の実施形態の置換処理作成支援プログラムの実行画面の一例である。
【図２１】編集対象データの一例を示す図である。
【図２２】正規表現の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、実施形態を図面を参照して説明する。図１は、第１の実施形態の文字列選択装置の機能ブロック図である。
文字列選択装置１は、選択対象情報９ａと、命令情報９ｂを入力し、選択対象情報９ａ中の検索処理や置換処理など所要の情報処理対象となる文字列の選択をおこなう情報処理装置である。選択対象情報９ａは、選択対象となる文字列を含む情報である。たとえば、選択対象となる文字列を含む情報は、文書等のテキストデータや、ソースコード等のプログラムデータである。なお、ここでいう文字列は、狭義の文字に限らず、記号や数字などを含む広義の文字により構成される。
【００１６】
命令情報９ｂは、命令の作成に必要な情報、または命令そのものである。命令には、選択範囲集合を対象に、選択範囲生成規則に基づいて新しい選択範囲集合を生成する命令、選択範囲集合を対象とする集合演算により新たな選択範囲集合を生成する命令がある。
【００１７】
文字列選択装置１は、情報入力手段２と、命令情報入力手段３と、第１選択範囲生成手段４と、選択範囲保持手段５と、第２選択範囲生成手段６を備える。
情報入力手段２は、選択対象情報９ａを入力する。命令情報入力手段３は、命令情報９ｂを入力する。命令情報９ｂは、複数の選択範囲生成規則と集合演算情報のうちいずれか一方、または両方を含む。
【００１８】
選択範囲保持手段５は、選択範囲集合を複数保持可能である。選択範囲集合は、０個以上の選択範囲要素を有する。たとえば、選択範囲保持手段５は、複数の選択範囲集合８ａ、８ｂ、８ｃを保持する。選択範囲集合８ａは、複数の選択範囲要素８ａａ、８ａｂ、８ａｃを要素として含む。また、選択範囲集合８ａは、０個の選択範囲要素を有する場合、すなわち空集合となる場合がある。
【００１９】
第１選択範囲生成手段４は、複数の選択範囲生成規則のそれぞれに基づいて選択範囲集合を生成する。たとえば、第１選択範囲生成手段４は、すでにある選択範囲集合に正規表現からなる選択範囲生成規則を適用して、該当する選択範囲要素を有する、新しい選択範囲集合を生成する。ここで、初期の選択範囲集合は、選択対象となる文字列を含む情報（入力文字列のすべて）を選択範囲要素とする選択範囲集合である。第１選択範囲生成手段４は、生成した選択範囲集合を選択範囲保持手段５に保持させる。
【００２０】
第２選択範囲生成手段６は、集合演算情報に基づいて、選択範囲保持手段５が保持する１つ以上の選択範囲集合を対象とする集合演算により、新しい選択範囲集合を生成する。たとえば、第２選択範囲生成手段６は、第１選択範囲生成手段４が初期の選択範囲集合から生成した選択範囲集合８ａ、８ｂの和集合として、所望の選択範囲要素を有する選択範囲集合８ｃを生成する。第２選択範囲生成手段６は、生成した選択範囲集合を選択範囲保持手段５に保持させる。
【００２１】
これにより、文字列選択装置１は、選択範囲生成規則に基づく選択範囲要素を有する選択範囲集合の生成を、単純な選択処理の組み合わせとして表現することができる。したがって、文字列選択装置１は、複雑な選択処理の作成に代えて、容易に作成可能な命令情報９ｂを用いることを可能とし、複雑な文字列選択処理を容易化することができる。
【００２２】
なお、文字列選択装置１は、第２選択範囲生成手段６により生成された選択範囲集合を置換対象とし、置換対象とした選択範囲集合の選択範囲要素を置換文字列で置換する文字列置換手段を備えるようにしてもよい。これにより、文字列選択装置１は、文字列置換装置としての機能を有する。このような文字列選択装置１は、複雑な置換処理の作成に代えて、容易に作成可能な命令情報９ｂを用いることを可能とし、複雑な文字列置換処理を容易化することができる。
【００２３】
また、文字列選択装置１は、命令情報９ｂを複数保持可能な命令保持手段を備えるようにしてもよい。その場合、文字列選択装置１は、命令保持手段が保持する命令情報９ｂを、順次読み出して実行することができる。
【００２４】
次に、第２の実施形態を用いてより具体的な説明をする。文字列選択をおこなう情報処理装置の１つである置換装置について、図２を用いて説明する。図２は、第２の実施形態の置換装置の機能ブロック図である。
【００２５】
置換装置１０は、命令情報２１と、編集対象情報２２と、置換情報２３を入力し、置換後データ２４を出力する情報処理装置である。命令情報２１は、命令の作成に用いる情報である。編集対象情報２２は、置換（編集）対象となる文字列を含む情報である。たとえば、置換対象となる文字列は、Ｗｅｂページ用データからなる編集対象データ２００（図２１）がある。置換情報２３は、置換対象となる文字列を置換する文字列（置換文字列）を含む情報である。置換後データ２４は、置換対象となる文字列のうち、所要の文字範囲を置換文字列で置換した文字列である。たとえば、置換後データ２４は、Ｗｅｂページ用データからなる編集対象データ２００のうち、（Ｂ）、（Ｃ）について文字列「inquiry@example.com」を文字列「<b>inquiry@example.com</b>」に置換したものである。
【００２６】
置換装置１０は、制御部１１、命令保持部１４、選択範囲保持部１５を備える。制御部１１は、さらに、ＧＵＩ（Graphic User Interface）部１２、命令解釈実行部１３を有する。
【００２７】
制御部１１は、置換装置１０を統括的に制御する。
ＧＵＩ部１２は、グラフィカルユーザインターフェースにより、命令情報２１と、編集対象情報２２と、置換情報２３の入力内容をユーザに明示するとともに、進行中の処理内容、処理結果である編集対象データ２００の出力内容を明示する。
【００２８】
命令解釈実行部１３は、ＧＵＩ部１２を介して入力した命令情報２１から、命令列（命令３０ａ、３０ｂ、３０ｃ、…）を生成する。命令解釈実行部１３は、生成した命令列を命令保持部１４に保持させる。命令解釈実行部１３は、命令保持部１４が保持する命令を順次読み出して、命令を実行する。命令解釈実行部１３は、命令にしたがい、選択範囲保持部１５が保持する選択範囲を読み出し、新しい選択範囲を生成し、選択範囲保持部１５に保持させる。命令解釈実行部１３は、命令にしたがい、特定の選択範囲について文字範囲を置換文字列で置換した置換後データ２４を出力する。
【００２９】
命令保持部１４は、命令を１つの文字列として扱い、複数の命令からなる命令列を文字列のリストとして保持する。命令には、選択命令、集合演算命令、置換命令、対象設定命令がある。命令の詳細については、後で図４、図５を用いて詳述する。
【００３０】
選択範囲保持部１５は、選択範囲を保持する。選択範囲は、０個以上の文字範囲（置換対象範囲）を要素とする。たとえば、選択範囲保持部１５は、複数の選択範囲（選択範囲４０ａ、４０ｂ、４０ｃ、…）を保持する。選択範囲４０ａは、複数の文字範囲４０ａａ、４０ａｂ、４０ａｃを要素とする。同様に、選択範囲４０ｂ、４０ｃは、図示しない文字範囲を要素とする。選択範囲保持部１５が保持する選択範囲は、命令解釈実行部１３によって、読み出され、選択範囲生成規則または集合演算の適用により新しく生成され、文字範囲が文字列で置換される。
【００３１】
これにより、置換装置１０は、選択範囲生成規則に基づく選択範囲の生成と、集合演算に基づく選択範囲の生成の組み合わせにより、複雑な選択処理を表現する。したがって、置換装置１０は、複雑な置換処理の作成に代えて、容易に作成可能な命令を用いることを可能とし、複雑なデータ置換処理を容易化することができる。
【００３２】
なお、制御部１１は、第１の実施形態における情報入力手段２、命令情報入力手段３としての機能を有する。さらに、制御部１１と命令保持部１４は、第１の実施形態における第１選択範囲生成手段４と、第２選択範囲生成手段６としての機能を有する。
【００３３】
次に、第２の実施形態の置換装置１０のハードウェア構成を説明する。図３は、第２の実施形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００３４】
ＲＡＭ１０２は、コンピュータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３５】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００３６】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３７】
グラフィック処理装置１０４には、モニタ１１０が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令にしたがって、画像をモニタ１１０の画面に表示させる。モニタ１１０としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３８】
入力インタフェース１０５には、キーボード１１１とマウス１１２とが接続されている。入力インタフェース１０５は、キーボード１１１やマウス１１２から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１１２は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３９】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１１３に記録されたデータの読み取りを行う。光ディスク１１３は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１１３には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４０】
通信インタフェース１０７は、ネットワーク５０に接続されている。通信インタフェース１０７は、ネットワーク５０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、命令について、図４、図５を用いて説明する。図４は、第２の実施形態の命令種別定義を示す命令種別表である。図５は、第２の実施形態の命令書式定義を示す命令書式表である。
【００４２】
置換装置１０が実行可能な命令には、命令種別表２３０に示すように、選択命令、集合演算命令、置換命令、対象設定命令がある。
対象設定命令は、置換対象となる文字列を設定し、置換対象となる文字列のすべてを選択範囲として追加する命令である。対象設定命令が追加する選択範囲は、置換対象となる文字列のすべてを文字範囲とする要素を１つ有することとなる。また、このとき、対象設定命令は、選択範囲保持部１５が保持していた選択範囲をすべて削除する。
【００４３】
対象設定命令の書式は、「Ｔ，”text”」である。Ｔは、演算子であり、”text”は、被演算子である。ここで、text は、ＣＳＶ（Comma-Separated Values）形式のエスケープをした、１つのフィールドを表す文字列である。対象設定命令は、置換対象となる文字列”text”が文字範囲となる選択範囲を選択範囲保持部１５に保持させる。
【００４４】
選択命令は、選択範囲保持部１５に保持されている選択範囲を読み出して、正規表現によって新しい選択範囲を生成し、生成した選択範囲を選択範囲保持部１５に保持させる命令である。
【００４５】
選択命令の書式は、「Ｓ，selection，”pattern”，group」である。Ｓは、演算子であり、selection，”pattern”，group は、それぞれ被演算子である。ここで、selection，group は、０以上の整数であり、”pattern”は、ＣＳＶ形式のエスケープをした、１つのフィールドを表す文字列である。選択命令は、選択範囲（selection）から、文字列”pattern”で示された正規表現の、group で示されたグループを、新たな選択範囲として追加する。
【００４６】
集合演算命令は、選択範囲保持部１５に保持されている選択範囲を読み出して、読み出した選択範囲の集合演算によって新しい選択範囲を生成し、生成した選択範囲を選択範囲保持部１５に保持させる命令である。
【００４７】
集合演算命令の書式は、「Ｏ，selection１，selection２，type」である。Ｏは、演算子であり、selection１，selection２，type は、それぞれ被演算子である。ここで、selection１，selection２は、０以上の整数であり、type は、集合演算の種類を指定する「Ｕ」、「Ｉ」、「Ｄ」のいずれか１文字である。集合演算命令は、２つの選択範囲（selection１、selection２）に対して、文字（type）で指定される集合演算をおこない、集合演算結果を、新たな選択範囲として追加する。
【００４８】
なお、type が「Ｕ」であれば、集合演算命令は、（selection１）∪（selection２）の集合演算を実行する。type が「Ｉ」であれば、集合演算命令は、（selection１）∩（selection２）の集合演算を実行する。type が「Ｄ」であれば、集合演算命令は、（selection１）−（selection２）の集合演算を実行する。なお、被演算子となる選択範囲が２つの場合（selection１、selection２）を示したが、被演算子となる選択範囲が３つ以上であってもよいし、補集合を求める集合演算を用意する場合などは、被演算子となる選択範囲が１つであってもよい。
【００４９】
置換命令は、選択範囲保持部１５に保持されている選択範囲を読み出して、置換文字列で置換し、生成した選択範囲を選択範囲保持部１５に保持させる命令である。
置換命令の書式は、「Ｒ，selection，”pattern”」である。Ｒは、演算子であり、selection，”pattern”は、それぞれ被演算子である。ここで、selection は、０以上の整数であり、”pattern”は、ＣＳＶ形式のエスケープをした、１つのフィールドを表す文字列である。置換命令は、選択範囲（selection）の要素（文字範囲）を文字列”pattern”で置換し、新たな選択範囲として追加する。
【００５０】
ここで、選択範囲保持部１５が保持する選択範囲について、具体的に説明する。選択範囲保持部１５は、選択範囲のリストを保持する。各選択範囲は、０以上の整数を値として持つ、selection（選択範囲識別情報）によって特定される。たとえば、選択範囲保持部が保持する選択範囲のリストは、「０，１，２，３」である。
【００５１】
次に、選択範囲保持部１５が保持する各選択範囲ごとの文字範囲について、具体的に説明する。文字範囲は、文字列の始点と終点とによって表される。始点と終点は、置換対象となる文字列の文字区切り（文字と文字の間）に先頭を「０」として文字区切りごとに昇順に番号（文字識別情報）付けしたものである。たとえば、Ｎ文字からなる文字列は、文字列先頭を「０」として、順に、１文字目と２文字目の間を「１」、２文字目と３文字目の間を「２」、・・・、文字列終端を「Ｎ」と番号付けされる。これにより、文字範囲は、［Ｓ，Ｅ］（０≦Ｓ≦Ｅ≦Ｎ）のように表すことができる。たとえば、選択範囲保持部が保持する文字範囲のリストは、「［０，３］、［５，１０］、［１１，１３］」である。このように、１つの選択範囲の文字範囲のリストは、先頭文字に近い順で並べられ、文字範囲間で同一番号が付された文字の重複はない。なお、選択範囲「０」は、置換対象となる文字列全体を保持することに用いられ、選択範囲保持部１５に保持された初期状態は、文字範囲［０，０］である。
【００５２】
次に、命令解釈実行部１３により実行される命令解釈実行処理について、図６を用いて説明する。図６は、第２の実施形態の命令解釈実行処理のフローチャートである。命令解釈実行処理は、実行対象の命令指定を受け付けて、指定された命令を解釈、実行する処理である。
【００５３】
［ステップＳ１１］命令解釈実行部１３は、ＧＵＩ部１２を介して整数ｎの入力を受け付ける。整数ｎは、命令解釈実行部１３が実行対象とする命令を指定する番号（命令識別情報）である。たとえば、整数ｎは、命令保持部１４が保持するｎ番目の命令文字列を指定する。
【００５４】
［ステップＳ１２］命令解釈実行部１３は、命令保持部１４が保持するｎ番目の命令文字列を取得する。
［ステップＳ１３］命令解釈実行部１３は、命令保持部１４から取得した命令文字列の構文解析をおこなう。構文解析は、命令文字列をＣＳＶ形式として解釈する。ＣＳＶ形式の構文解析は、既知のため詳細な説明を省略する。
【００５５】
［ステップＳ１４］命令解釈実行部１３は、命令文字列の最初のフィールド値を判定する。命令解釈実行部１３は、命令文字列の最初のフィールド値が「Ｓ」の場合、ステップＳ１５にすすむ。命令解釈実行部１３は、命令文字列の最初のフィールド値が「Ｏ」の場合、ステップＳ１６にすすむ。命令解釈実行部１３は、命令文字列の最初のフィールド値が「Ｒ」の場合、ステップＳ１７にすすむ。命令解釈実行部１３は、命令文字列の最初のフィールド値が「Ｔ」の場合、ステップＳ１８にすすむ。
【００５６】
［ステップＳ１５］命令解釈実行部１３は、選択命令の解釈実行処理を実行し、命令解釈実行処理を終了する。選択命令の解釈実行処理の詳細は、図７を用いて後で詳述する。
［ステップＳ１６］命令解釈実行部１３は、集合演算命令の解釈実行処理を実行し、命令解釈実行処理を終了する。集合演算命令の解釈実行処理の詳細は、図８、図９を用いて後で詳述する。
【００５７】
［ステップＳ１７］命令解釈実行部１３は、置換命令の解釈実行処理を実行し、命令解釈実行処理を終了する。置換命令の解釈実行処理の詳細は、図１０を用いて後で詳述する。
【００５８】
［ステップＳ１８］命令解釈実行部１３は、対象設定命令の解釈実行処理を実行し、命令解釈実行処理を終了する。対象設定命令の解釈実行処理の詳細は、図１１を用いて後で詳述する。
【００５９】
このようにして、命令解釈実行部１３は、命令文字列を解釈し、各種命令を実行する。
次に、命令解釈実行部１３により実行される選択命令の解釈実行処理について、図７を用いて説明する。図７は、第２の実施形態の選択命令の解釈実行処理のフローチャートである。選択命令の解釈実行処理は、命令解釈実行処理の中で、命令文字列が選択命令であると解釈された場合に実行される処理である。
【００６０】
［ステップＳ２１］命令解釈実行部１３は、命令文字列の２番目以降のフィールドを、順次、selection、pattern、group と名付ける。
［ステップＳ２２］命令解釈実行部１３は、選択範囲保持部１５からselection に対応する選択範囲を取得する。
【００６１】
［ステップＳ２３］命令解釈実行部１３は、空の文字範囲リストrangeList を生成する。
［ステップＳ２４］命令解釈実行部１３は、取得した選択範囲の各文字範囲について、ステップＳ２５の処理を繰り返し実行する。
【００６２】
［ステップＳ２５］命令解釈実行部１３は、取得した選択範囲の１つの文字範囲について、正規表現pattern に合致する文字列を検索して取得する。命令解釈実行部１３は、取得した文字列を文字範囲リストrangeList に追加する。なお、文字範囲リストrangeListに追加する文字列の範囲は、正規表現グループgroup に対応する部分となる。なお、正規表現グループgroup の値が「０」のとき、命令解釈実行部１３は、取得された文字列の全範囲を文字範囲リストrangeList に追加する。この正規表現グループの文字範囲取得方法は、既知のため詳細な説明は省略する。
【００６３】
［ステップＳ２６］命令解釈実行部１３は、取得した選択範囲のすべての文字範囲について文字列を検索していない（検索対象とする文字範囲が残っている）場合、次の文字範囲を検索対象として、ステップＳ２５にすすむ。命令解釈実行部１３は、検索対象とする文字範囲がない場合、ステップＳ２５の繰り返し処理を終了し、ステップＳ２７にすすむ。
【００６４】
［ステップＳ２７］命令解釈実行部１３は、ステップＳ２５の繰り返し処理で生成した文字範囲リストrangeList を新たな選択範囲として、選択範囲保持部１５に追加し、保持させて、選択命令の解釈実行処理を終了する。
【００６５】
このようにして、命令解釈実行部１３は、すでにある選択範囲に正規表現からなる選択範囲生成規則を適用して、新しい選択範囲を生成する。
次に、命令解釈実行部１３により実行される集合演算命令の解釈実行処理について、図８、図９を用いて説明する。図８は、第２の実施形態の集合演算命令の解釈実行処理のフローチャートである。図９は、第２の実施形態の集合演算の一例を示す図である。集合演算命令の解釈実行処理は、命令解釈実行処理の中で、命令文字列が集合演算命令であると解釈された場合に実行される処理である。
【００６６】
［ステップＳ３１］命令解釈実行部１３は、命令文字列の２番目以降のフィールドを、順次、selection１、selection２、type と名付ける。
［ステップＳ３２］命令解釈実行部１３は、選択範囲保持部１５からselection１、selection２に対応する選択範囲Ｓ１、Ｓ２を取得する。このとき、取得した選択範囲Ｓ１、Ｓ２の具体例を、集合演算例２５０に示す。たとえば、選択範囲Ｓ１は、文字範囲［０，３］、［５，１０］、「１１，１３」を有し、選択範囲Ｓ２は、文字範囲［１，６］、［８，９］、「１４，１６」を有する。
【００６７】
［ステップＳ３３］命令解釈実行部１３は、type の値を判定する。命令解釈実行部１３は、type の値が「Ｕ」の場合、ステップＳ３４にすすむ。命令解釈実行部１３は、type の値が「Ｉ」の場合、ステップＳ３５にすすむ。命令解釈実行部１３は、type の値が「Ｄ」の場合、ステップＳ３６にすすむ。
【００６８】
［ステップＳ３４］命令解釈実行部１３は、選択範囲Ｓ１と選択範囲Ｓ２の和集合を求める集合演算を実行し、（選択範囲Ｓ１）∪（選択範囲Ｓ２）に相当する選択範囲Ｓ３を生成する。具体的には、生成した選択範囲Ｓ３は、具体例として示す集合演算例２５０のようになる。たとえば、選択範囲Ｓ３は、文字範囲［０，１０］、「１１，１３」、「１４，１６」を有する。
【００６９】
［ステップＳ３５］命令解釈実行部１３は、選択範囲Ｓ１と選択範囲Ｓ２の積集合を求める集合演算を実行し、（選択範囲Ｓ１）∩（選択範囲Ｓ２）に相当する選択範囲Ｓ３を生成する。具体的には、生成した選択範囲Ｓ３は、具体例として示す集合演算例２５０のようになる。たとえば、選択範囲Ｓ３は、文字範囲［１，３］、「５，６」、「８，９」を有する。
【００７０】
［ステップＳ３６］命令解釈実行部１３は、選択範囲Ｓ１と選択範囲Ｓ２の差集合を求める集合演算を実行し、（選択範囲Ｓ１）−（選択範囲Ｓ２）に相当する選択範囲Ｓ３を生成する。具体的には、生成した選択範囲Ｓ３は、具体例として示す集合演算例２５０のようになる。たとえば、選択範囲Ｓ３は、文字範囲［０，１］、「６，８」、「９，１０」、［１１，１３］を有する。
【００７１】
［ステップＳ３７］命令解釈実行部１３は、ステップＳ３４、ステップＳ３５、またはステップＳ３６の各集合演算で生成した文字範囲Ｓ３を新たな選択範囲として、選択範囲保持部１５に追加し、保持させて、集合演算命令の解釈実行処理を終了する。
【００７２】
このようにして、命令解釈実行部１３は、すでにある選択範囲に集合演算を適用して、新しい選択範囲を生成する。
次に、命令解釈実行部１３により実行される置換命令の解釈実行処理について、図１０を用いて説明する。図１０は、第２の実施形態の置換命令の解釈実行処理のフローチャートである。置換命令の解釈実行処理は、命令解釈実行処理の中で、命令文字列が置換命令であると解釈された場合に実行される処理である。命令解釈実行部１３は、置換命令の解釈実行処理の実行により、selection で示された選択範囲を、pattern で示された置換文字列で置換し、置換後の文字列を文字範囲とする新たな選択範囲を追加する。
【００７３】
［ステップＳ４１］命令解釈実行部１３は、命令文字列の２番目以降のフィールドを、順次、 selection、pattern と名付ける。
［ステップＳ４２］命令解釈実行部１３は、選択範囲保持部１５から selection に対応する選択範囲を取得する。
【００７４】
［ステップＳ４３］命令解釈実行部１３は、空の可変文字列 replaced、空の文字範囲リスト rangeList、初期値０の最終文字位置 position を作成する。
［ステップＳ４４］命令解釈実行部１３は、取得した選択範囲の各文字範囲について、ステップＳ４５からステップＳ４９の処理を繰り返し実行する。
【００７５】
［ステップＳ４５］命令解釈実行部１３は、取得した選択範囲を１つの文字範囲［Ｓ，Ｅ］としたとき、文字範囲［position，Ｓ］の文字列を replaced に連結する。
［ステップＳ４６］命令解釈実行部１３は、現時点での replaced の長さ（連結前文字列長）をＮＳという名前で記憶する。
【００７６】
［ステップＳ４７］命令解釈実行部１３は、文字範囲［Ｓ，Ｅ］に対して、pattern による置換後文字列を replaced に連結する。
［ステップＳ４８］命令解釈実行部１３は、現時点での replaced の長さ（連結後文字列長）をＮＥという名前で記憶する。
【００７７】
［ステップＳ４９］命令解釈実行部１３は、rangeList に文字範囲［ＮＳ，ＮＥ］を追加する。命令解釈実行部１３は、position の値を、文字範囲［Ｓ，Ｅ］のＥの値に変更（更新）する。
【００７８】
［ステップＳ５０］命令解釈実行部１３は、取得した選択範囲のすべての文字範囲についてステップＳ４５からステップＳ４９の処理を繰り返し実行していない（未処理の文字範囲が残っている）場合、次の文字範囲を検索対象として、ステップＳ４５にすすむ。命令解釈実行部１３は、未処理の文字範囲がない場合、ステップＳ４５からステップＳ４９の繰り返し処理を終了し、ステップＳ５１にすすむ。
【００７９】
［ステップＳ５１］命令解釈実行部１３は、置換対象データの長さをＬとしたとき、置換対象データとなる文字範囲［position，Ｌ］を replaced に連結する。
［ステップＳ５２］命令解釈実行部１３は、選択範囲保持部１５が保持する選択範囲を削除して空にする。命令解釈実行部１３は、replaced の値を置換対象データとし、文字範囲［０，Ｌ］を１つ有する選択範囲（選択範囲０）を選択範囲保持部１５に追加する。
【００８０】
［ステップＳ５３］命令解釈実行部１３は、文字範囲リスト rangeList を有する新たな選択範囲を、選択範囲保持部１５に追加して、置換命令の解釈実行処理を終了する。
これにより、命令解釈実行部１３は、置換前の選択範囲に対応する置換後の選択範囲を追加する。
【００８１】
次に、命令解釈実行部１３により実行される対象設定命令の解釈実行処理について、図１１を用いて説明する。図１１は、第２の実施形態の対象設定命令の解釈実行処理のフローチャートである。対象設定命令の解釈実行処理は、命令解釈実行処理の中で、命令文字列が対象設定命令であると解釈された場合に実行される処理である。
【００８２】
［ステップＳ６１］命令解釈実行部１３は、命令文字列の２番目以降のフィールドを text と名付ける。
［ステップＳ６２］命令解釈実行部１３は、選択範囲保持部１５が保持する選択範囲を削除して空にする。命令解釈実行部１３は、置換対象データを text の値に設定する。命令解釈実行部１３は、置換対象データの長さをＬとしたとき、文字範囲［０，Ｌ］を１つ保持する選択範囲（選択範囲０）を選択範囲保持部１５に追加する。
【００８３】
次に、ＧＵＩ部１２がおこなう、命令の入力、実行指示の入力、命令保持部１４が保持する命令、選択範囲保持部１５が保持する選択範囲、選択範囲ごとの文字範囲を出力について、図１２から図１９を用いて説明する。図１２、図１５から図２０は、第２の実施形態の置換処理作成支援プログラムの実行画面の一例である。図１３は、正規表現の一例を示す図である。図１４は、第２の実施形態の命令文字列入力の一例を示す図である。
【００８４】
置換処理作成支援プログラムの実行画面は、初期状態において図１２に示すような初期画面３００を表示する。置換処理作成支援プログラムの実行画面は、命令列表示領域３０１、選択中命令表示領域３０２、選択中命令実行指示受付部３０３、選択中命令編集指示受付部３０４、選択範囲表示部３０５を有する。命令列表示領域３０１は、命令保持部１４が保持する命令列を表示するリストボックスである。選択中命令表示領域３０２は、選択中の命令を表示するテキストエリアである。選択中命令実行指示受付部３０３は、選択中の命令の実行を受け付けるボタンである。選択中命令編集指示受付部３０４は、選択中の命令の編集を受け付けるほか、命令の追加など命令列の編集を受け付けるボタンである。選択範囲表示部３０５は、選択範囲列を表示するテキストエリアを持ったタブである。
【００８５】
初期画面３００は、いまだ命令を受け付けていないため、命令列表示領域３０１に表示する命令列がない。また、初期画面３００は、選択中命令表示領域３０２に表示する選択中の命令もない。選択範囲０のタブ３０６のテキストエリアは、置換対象データがないため、先頭位置３０７をハイライト表示する。
【００８６】
ここで、この初期画面３００を表示した初期状態から、図１３に示す正規表現２６０の置換処理手順を具体例にして、ＧＵＩ部１２の機能を説明する。正規表現２６０は、Ｊａｖａ（登録商標）環境での正規表現例である。たとえば、文字列「inquiry@example.com」を文字列「<b>inquiry@example.com</b>」に置換する処理は、正規表現２６０のように記述できる。正規表現２６０は、「inquiry@example\.com」と記述した選択処理による置換対象文字列の選択と、選択した置換対象文字列を、「<b>$0</b>」と記述した置換文字列で置換する置換処理を表す。置換装置１０は、ＧＵＩ部１２を通じて、こうした置換処理の具体的指示を受け入れる。
【００８７】
置換装置１０は、置換処理の具体的指示を、利用者からの命令情報２１、編集対象情報２２、置換情報２３として受け入れる。
初期画面３００において、利用者が選択中命令編集指示受付部３０４を押すと、ＧＵＩ部１２は、テキストエリアへの入力を促すダイアログ（図示省略）を表示する。ここで、図１４に示すような利用者からの命令文字列２７０にある命令２７１（「Ｔ，"お問い合わせは <a href=""mailto:inquiry@example.com"">inquiry@example.com</a> へ。"」）の入力を受けて、ＧＵＩ部１２は、ＧＵＩを更新する。これにより、置換処理作成支援プログラムの実行画面は、命令選択画面３２０を表示する。なお、ＣＳＶ形式では "" は " をエスケープした記述であり、フィールド値としては " として解釈される。
【００８８】
図１５に示すような命令選択画面３２０は、命令２７１の入力を受けて、命令列表示領域３０１に命令２７１を表示する。このとき、命令列表示領域３０１は、被演算子 text を概略表示し、命令２７１の概要把握を容易にする。
【００８９】
図１６に示すような命令選択画面３４０は、初期画面３００から利用者が順次、選択中命令編集指示受付部３０４を操作して、命令２７１、命令２７２、命令２７３、命令２７４、命令２７５を入力したときの表示画面である。命令選択画面３４０の命令列表示領域３０１は、命令２７１、命令２７２、命令２７３、命令２７４、命令２７５からなる命令列を表示する。
【００９０】
利用者が命令列表示領域３０１に表示された命令を選択すると、ＧＵＩ部１２は、命令列表示領域３０１の表示を反転し、選択中の命令を明示する。命令選択画面３４０の命令列表示領域３０１は、命令２７１の表示を反転し、命令２７１が選択中であることを示す。このとき、ＧＵＩ部１２は、選択中命令表示領域３０２に選択中の命令２７１の詳細を表示する。このように、選択中命令表示領域３０２は、命令２７１の詳細把握を容易にする。
【００９１】
ここで、ＧＵＩ部１２は、選択中命令実行指示受付部３０３の操作を受け付けると、選択中である命令２７１の命令解釈実行処理の実行を命令解釈実行部１３に指示する。ＧＵＩ部１２は、命令解釈実行部１３による命令解釈実行処理が完了したとき、更新された選択範囲保持部１５の保持内容にしたがい、置換処理作成支援プログラムの実行画面を更新する。
【００９２】
対象設定命令である命令２７１の解釈実行処理を完了した後の実行画面が、図１７に示すような命令選択画面３６０である。命令選択画面３６０は、選択範囲０のタブ３０６のテキストエリアに置換対象データ３６１を表示する。選択範囲０は、対象設定命令の被演算子 text（＝「"お問い合わせは <a href=""mailto:inquiry@example.com"">inquiry@example.com</a> へ。"」）を文字範囲とする。ＧＵＩ部１２は、選択範囲０の文字範囲を置換対象データ３６１としてハイライト表示する。このとき、選択範囲０は、文字範囲［０，７１］を集合要素として１つ有する。なお、文字範囲［０，７１］の「７１」は、置換対象データ３６１の文字列長である。
【００９３】
同様にして、選択命令である命令２７２の解釈実行処理を完了した後の実行画面が、図１８に示すような命令選択画面３８０である。命令選択画面３８０の命令列表示領域３０１は、命令２７２の表示を反転し、命令２７２が選択中であることを示す。選択中命令表示領域３０２は、選択中の命令２７２の詳細を表示する。選択範囲表示部３０５は、選択範囲０のタブ３０６と、選択範囲１のタブ３８１を表示する。
【００９４】
命令２７２は、選択範囲０の文字範囲（置換対象データ３６１）から正規表現「"(?sm)(<!--.*?-->)|(?!<!--)(<(<!--.*?-->|"".*?""|'.*?'|[^>])*>)"」に合致する文字範囲（置換対象データ３８２、置換対象データ３８３）を選択し、選択範囲１を生成する。
【００９５】
なお、上記の正規表現は次のように分解でき、確かにＨＴＭＬテキスト要素以外の選択を表現していることがわかる。
（Ａ）  「(?sm)」は、これより後の正規表現で「.」を行末記号（line terminators）にマッチさせる表現である。「(?sm)」は、マッチフラグ（match flags）DOTALLおよびMULTILINEを設定する表現である。
（Ｂ）  「(<!--.*?-->)」は、「<!--」で始まり、最も直近の「-->」で終わる文字列をマッチさせる表現である。「*?」は、最短で一致する任意の０文字以上の文字列を表現する。
（Ｃ）  「|」は、これより前の正規表現でマッチしない場合、これより後の正規表現でのマッチを試みる表現である。
（Ｄ）  「(?!<!--)」は、「<!--」で始まっておらず、かつ、これより後の正規表現でマッチする文字列をマッチさせる表現である。
（Ｅ）  「(<(<!--.*?-->|".*?"|'.*?'|[^>])*>)」は、「<」で始まり、「>」で終わり、その間が内側の括弧内の正規表現にマッチする任意個の部分文字列である最長文字列をマッチさせる表現である。内側の括弧内の正規表現は、先頭から順番に（Ｅ−１）から（Ｅ−７）のように分解できる。
（Ｅ−１）  「<!--.*?-->」は、「<!--」で始まり、最も直近の「-->」で終わる部分文字列をマッチさせる表現である。
（Ｅ−２）  「|」は、これより前の正規表現でマッチしない場合、これより後の正規表現でのマッチを試みる表現である。
（Ｅ−３）  「".*?"」は、「"」で始まり、最も直近の「"」で終わる部分文字列をマッチさせる表現である。
（Ｅ−４）  「|」は、これより前の正規表現でマッチしない場合、これより後の正規表現でのマッチを試みる表現である。
（Ｅ−５）  「'.*?'」は、「'」で始まり、最も直近の「'」で終わる部分文字列をマッチさせる表現である。
（Ｅ−６）  「|」は、これより前の正規表現でマッチしない場合、これより後の正規表現でのマッチを試みる表現である。
（Ｅ−７）  「[^>]」は、「>」以外の任意の１文字に相当する部分文字列がをッチさせる表現である。
【００９６】
たとえば、編集対象データ２００（図１参照）の最初の行「<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">」は、（Ｅ）の部分でマッチする（いくつかの（Ｅ−７）と、（Ｅ−３）が、部分的にマッチする）。
【００９７】
ＧＵＩ部１２は、選択範囲１のタブ３８１のテキストエリアに、選択範囲１の文字範囲を置換対象データ３８２、３８３としてハイライト表示する。このとき、選択範囲１は、文字範囲［８，４５］と文字範囲［６４，６８］を集合要素として有する。
【００９８】
同様にして、集合演算命令である命令２７３の解釈実行処理を完了した後の実行画面が、図１９に示すような命令選択画面４００である。命令選択画面４００の命令列表示領域３０１は、命令２７３の表示を反転し、命令２７３が選択中であることを示す。選択中命令表示領域３０２は、選択中の命令２７３の詳細を表示する。選択範囲表示部３０５は、選択範囲０のタブ３０６と、選択範囲１のタブ３８１と、選択範囲２のタブ４０１を表示する。
【００９９】
命令２７３は、選択範囲０の文字範囲（置換対象データ３６１）と、選択範囲１の文字範囲（置換対象データ３８２、置換対象データ３８３）について差集合を求める集合演算を実行し、選択範囲２を生成する。命令２７３の集合演算の結果は、選択範囲０｛［０，７１］｝−選択範囲１｛［８，４５］、［６４，６８］｝＝選択範囲２｛［０，８］、［４５，６４］、［６８，７１］｝となる。
【０１００】
ＧＵＩ部１２は、選択範囲２のタブ４０１のテキストエリアに、選択範囲２の文字範囲を置換対象データ４０２、４０３、４０４としてハイライト表示する。このとき、選択範囲２は、文字範囲［０，８］と文字範囲［４５，６４］と文字範囲［６８，７１］を集合要素として有する。
【０１０１】
以下同様に、ＧＵＩ部１２は、命令列から選択した命令の実行を、命令解釈実行部１３に最後の命令まで順に指示する。ＧＵＩ部１２は、命令解釈実行部１３による処理が完了したとき、更新された選択範囲保持部１５の保持内容にしたがい、置換処理作成支援プログラムの実行画面を更新する。
【０１０２】
そして、置換命令である命令２７５の解釈実行処理を完了した後の実行画面が、図２０に示すような命令選択画面４２０である。命令選択画面４２０の命令列表示領域３０１は、命令２７５の表示を反転し、命令２７５が選択中であることを示す。選択中命令表示領域３０２は、選択中の命令２７５の詳細を表示する。選択範囲表示部３０５は、選択範囲０のタブ３０６と、選択範囲１のタブ３８１を表示する。
【０１０３】
命令２７５は、選択範囲３の文字範囲（図示せず）について置換文字列 pattern「"<b>$0</b>"」で置換して選択範囲１を生成する。なお、命令２７５の実行前の選択範囲１は、置換命令の解釈実行処理で削除されるため、命令２７５の実行後の選択範囲１と異なる。
【０１０４】
このように置換装置１０は、簡単な命令の組み合わせによって、利用者の意図した通りの置換処理を容易に実現する。ＧＵＩ部１２は、利用者が命令の記述、命令の組み合わせをおこなうことを支援する。
【０１０５】
上記した第２の実施形態は、ＧＵＩ上で置換処理を指示する形態について説明したが、置換装置１０は、ＣＵＩ（Character-based User Interface）で命令入力と全命令の実行を同時に指示できる形態としてもよい。また、置換装置１０は、ＣＵＩを用いて対象設定命令の処理をおこなう場合において、被演算子 text の値入力に代えて、標準入力を用いるようにしてもよい。また、その場合、置換装置１０は、命令列にあるすべての命令を実行した後に、置換対象データを標準出力に出力するようにしてもよい。そのようにした置換装置１０は、他の置換対象データに対する、作成した命令列（置換処理）の適用を容易にする。
【０１０６】
なお、置換処理を実行する情報処理装置の一例として置換装置１０を説明したが、置換処理を実行可能であれば、広く情報処理装置に適用可能である。
また、置換処理を実行する情報処理装置の一例として置換装置１０を説明したが、置換命令実行を伴わない検索処理を実行する検索装置、あるいは検索支援装置にも適用可能である。
【０１０７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、置換装置１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（光ディスク１１３を含む）に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１０８】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０９】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１１０】
なお、上述の実施形態は、実施形態の要旨を逸脱しない範囲内において種々の変更を加えることができる。
さらに、上述の実施形態は、多数の変形、変更が当業者にとって可能であり、説明した正確な構成および応用例に限定されるものではない。
【０１１１】
以上説明した実施形態の主な技術的特徴は、以下の付記の通りである。
（付記１）  コンピュータが、
選択対象情報と、複数の選択範囲生成規則と集合演算情報を含む命令情報との入力を受け付け、
前記選択対象情報について０個以上の選択範囲要素を有する選択範囲集合を、前記複数の選択範囲生成規則のそれぞれに基づいて生成し、前記選択範囲集合を複数保持可能な選択範囲保持手段に保持させ、
前記集合演算情報に基づいて、前記選択範囲保持手段が保持する前記選択範囲集合を対象とする集合演算により前記選択範囲集合を生成する、
処理を実行することを特徴とする文字列選択方法。
【０１１２】
（付記２）  さらに、前記集合演算により生成された前記選択範囲集合を置換対象とし、置換対象とした前記選択範囲集合の前記選択範囲要素を置換文字列で置換する処理を実行することを特徴とする付記１記載の文字列選択方法。
【０１１３】
（付記３）  さらに、
前記命令情報を複数保持可能な命令保持手段に、前記入力した命令情報を保持させ、
前記選択範囲集合の生成と、生成した前記選択範囲集合の前記選択範囲保持手段への保持とを、実行するための前記命令情報を、前記命令保持手段から順次読み出す、
処理を実行することを特徴とする付記１記載の文字列選択方法。
【０１１４】
（付記４）  選択範囲保持手段は、前記選択対象情報のすべてを前記選択範囲要素とする前記選択範囲集合を保持することを特徴とする付記１記載の文字列選択方法。
（付記５）  前記選択範囲生成規則は、正規表現によって記述され、
前記正規表現に基づいて、前記選択対象情報から前記選択範囲要素を有する前記選択範囲集合を生成することを特徴とする付記１記載の文字列選択方法。
【０１１５】
（付記６）  前記集合演算情報は、前記選択範囲保持手段が保持する２以上の前記選択範囲集合を対象とする積集合演算を指示する情報を含むことを特徴とする付記１記載の文字列選択方法。
【０１１６】
（付記７）  前記集合演算情報は、前記選択範囲保持手段が保持する２以上の前記選択範囲集合を対象とする和集合演算を指示する情報を含むことを特徴とする付記１記載の文字列選択方法。
【０１１７】
（付記８）  前記集合演算情報は、前記選択範囲保持手段が保持する２以上の前記選択範囲集合を対象とする差集合演算を指示する情報を含むことを特徴とする付記１記載の文字列選択方法。
【０１１８】
（付記９）  コンピュータに、
選択対象情報と、複数の選択範囲生成規則と集合演算情報を含む命令情報との入力を受け付け、
前記選択対象情報について０個以上の選択範囲要素を有する選択範囲集合を、前記複数の選択範囲生成規則のそれぞれに基づいて生成し、前記選択範囲集合を複数保持可能な選択範囲保持手段に保持させ、
前記集合演算情報に基づいて、前記選択範囲保持手段が保持する前記選択範囲集合を対象とする集合演算により前記選択範囲集合を生成する、
処理を実行させることを特徴とする文字列選択プログラム。
【０１１９】
（付記１０）  選択対象情報を入力する情報入力手段と、
複数の選択範囲生成規則と集合演算情報とを含む命令情報を入力する命令情報入力手段と、
前記選択対象情報について０個以上の選択範囲要素を有する選択範囲集合を複数保持可能な選択範囲保持手段と、
前記複数の選択範囲生成規則のそれぞれに基づいて前記選択範囲集合を生成し、前記選択範囲保持手段に保持させる第１選択範囲生成手段と、
前記集合演算情報に基づいて、前記選択範囲保持手段が保持する１以上の前記選択範囲集合を対象とする集合演算により前記選択範囲集合を生成する第２選択範囲生成手段と、
を備えることを特徴とする文字列選択装置。
【符号の説明】
【０１２０】
１  文字列選択装置
２  情報入力手段
３  命令情報入力手段
４  第１選択範囲生成手段
５  選択範囲保持手段
６  第２選択範囲生成手段
８ａ、８ｂ、８ｃ  選択範囲集合
８ａａ、８ａｂ、８ａｃ 選択範囲要素
９ａ  選択対象情報
９ｂ  命令情報
１０  置換装置
１１  制御部
１２  ＧＵＩ部
１３  命令解釈実行部
１４  命令保持部
１５  選択範囲保持部
２１  命令情報
２２  編集対象情報
２３  置換情報
２４  置換後データ
３０ａ、３０ｂ、３０ｃ  命令
４０ａ、４０ｂ、４０ｃ  選択範囲
４０ａａ、４０ａｂ、４０ａｃ  文字範囲
【図１】
2012073794.tif 000003
【図２】
2012073794.tif 000004
【図３】
2012073794.tif 000005
【図４】
2012073794.tif 000006
【図５】
2012073794.tif 000007
【図６】
2012073794.tif 000008
【図７】
2012073794.tif 000009
【図８】
2012073794.tif 000010
【図９】
2012073794.tif 000011
【図１０】
2012073794.tif 000012
【図１１】
2012073794.tif 000013
【図１２】
2012073794.tif 000014
【図１３】
2012073794.tif 000015
【図１４】
2012073794.tif 000016
【図１５】
2012073794.tif 000017
【図１６】
2012073794.tif 000018
【図１７】
2012073794.tif 000019
【図１８】
2012073794.tif 000020
【図１９】
2012073794.tif 000021
【図２０】
2012073794.tif 000022
【図２１】
2012073794.tif 000023
【図２２】
2012073794.tif 000024