今日は、Visual Basic(VB)を取り上げますよ。
例えば、テキストファイルがあります。そこには、好きな食べ物とその理由が書いてあるとしましょう。
こんな感じです。
お気づきの通り、htmlファイルですね。
つまり、タグを除外し、その食べ物と理由だけを取り出したいとします。
こんなとき、どうしたら簡単にできるでしょうか?
文字列を操作する関数は、たくさんあります。
indexOfを駆使して、できないことはありませんが、大変です。
実は、強い味方がいるのです。それは、正規表現です。
VBも、正規表現ができるようになったのです。ありがたい。
それでは、一緒に、チャレンジしてみましょう。
まずは、任意の名前で、新規プロジェクトを作成してください。
上の絵のように、コントロールを配置してください。
テキストボックスが2つ(左がTextBox1 右がTextBox2です)
ボタンが2つ(左がButton1 右がButton2です)
テキストプロパティは、それぞれ、「読み込み」「抽出」としました。
なお、テキストボックスは、MultilineプロパティをTrueにしてください。
そうすると、複数行を表示することができます。
また、ScrollBarsプロパティをVertical もしくは、Bothにしてください
そうそう、htmlファイルの内容を読み込まなくてはなりません。
今回は、このプロジェクトにhtmlファイルを取り込んでみます。
そうすれば、パスなしでファイル名だけで、指定できるので楽ができます。
プロジェクト→既存項目の追加 をクリックします。
今回は、デスクトップに保存してあるtabemono.htmlというファイルを追加します。
(オブジェクトの種類を「すべて」にすると、htmlファイルが表示されます)
追加すると、プロジェクトエクスプローラにtabemono.htmlが表示されます。
忘れないうちに、プロパティの「出力ディレクトリにコピー」を「常にコピーする」にしておきます。
こうすると実行ファイルと同じフォルダにファイルがコピーされるので、パスなしのファイル名のみの指定が可能になります。
それでは、左の「読み込み」ボタンをダブルクリックしてください。
以下のようにコードを記述します。
忘れないでほしいのは、モジュールの冒頭にある名前空間のインポートです。
冒頭の2行で、ファイルの読み書きと、正規表現に関するコードを簡単に記述することができます。
シンプルなコードですね。
StreamReaderクラスを使って、ファイルの中身を一気に取得して、テキストボックスに表示しています。
Openステートメントを使っていた昔より、楽なコードですよね。
それでは、「抽出」ボタンをクリックしたときのコードを記述します。
ここで正規表現を使いますよ。
ずいぶんと短いコードだと思いませんか?
これが、正規表現を使うメリットです。
split関数は、指定したパターン文字列で、元のテキストを分離分割していきます。
今回は、div開始タグで分割しました。
あとは、分割された各データの中から、食べ物と理由を抜き出せばいいのです。
h2タグやpタグの内容を取得する際に、正規表現を使っています。
([^
そして、その探し出した文字列の中の任意の文字列部分をgroup(1).value で取得できるのです。
さあ、完成したところで、デバッグしてみましょう。
F5を押します。
「読み込み」ボタンをクリックすると、htmlファイルのデータを取得できます。
「抽出」ボタンをクリックすると、左の文字列から、ちゃんと食べ物と理由を抜き出して表示されているのが分かりますね。
慣れないうちは、正規表現の書き方で苦労するかもしれませんが、
使いこなせると、格段にコーディングの効率が上がります。
ありがたい機能の一つです。
ブログゲットくんでも、大活躍の機能です。
ブログゲットくんのサイトはこちらですよ。
だい
例えば、テキストファイルがあります。そこには、好きな食べ物とその理由が書いてあるとしましょう。
こんな感じです。
お気づきの通り、htmlファイルですね。
つまり、タグを除外し、その食べ物と理由だけを取り出したいとします。
こんなとき、どうしたら簡単にできるでしょうか?
文字列を操作する関数は、たくさんあります。
indexOfを駆使して、できないことはありませんが、大変です。
実は、強い味方がいるのです。それは、正規表現です。
VBも、正規表現ができるようになったのです。ありがたい。
それでは、一緒に、チャレンジしてみましょう。
まずは、任意の名前で、新規プロジェクトを作成してください。
上の絵のように、コントロールを配置してください。
テキストボックスが2つ(左がTextBox1 右がTextBox2です)
ボタンが2つ(左がButton1 右がButton2です)
テキストプロパティは、それぞれ、「読み込み」「抽出」としました。
なお、テキストボックスは、MultilineプロパティをTrueにしてください。
そうすると、複数行を表示することができます。
また、ScrollBarsプロパティをVertical もしくは、Bothにしてください
そうそう、htmlファイルの内容を読み込まなくてはなりません。
今回は、このプロジェクトにhtmlファイルを取り込んでみます。
そうすれば、パスなしでファイル名だけで、指定できるので楽ができます。
プロジェクト→既存項目の追加 をクリックします。
今回は、デスクトップに保存してあるtabemono.htmlというファイルを追加します。
(オブジェクトの種類を「すべて」にすると、htmlファイルが表示されます)
追加すると、プロジェクトエクスプローラにtabemono.htmlが表示されます。
忘れないうちに、プロパティの「出力ディレクトリにコピー」を「常にコピーする」にしておきます。
こうすると実行ファイルと同じフォルダにファイルがコピーされるので、パスなしのファイル名のみの指定が可能になります。
それでは、左の「読み込み」ボタンをダブルクリックしてください。
以下のようにコードを記述します。
忘れないでほしいのは、モジュールの冒頭にある名前空間のインポートです。
冒頭の2行で、ファイルの読み書きと、正規表現に関するコードを簡単に記述することができます。
シンプルなコードですね。
StreamReaderクラスを使って、ファイルの中身を一気に取得して、テキストボックスに表示しています。
Openステートメントを使っていた昔より、楽なコードですよね。
それでは、「抽出」ボタンをクリックしたときのコードを記述します。
ここで正規表現を使いますよ。
ずいぶんと短いコードだと思いませんか?
これが、正規表現を使うメリットです。
split関数は、指定したパターン文字列で、元のテキストを分離分割していきます。
今回は、div開始タグで分割しました。
あとは、分割された各データの中から、食べ物と理由を抜き出せばいいのです。
h2タグやpタグの内容を取得する際に、正規表現を使っています。
([^
で始まり、
で終わる文字列を探し出すことができるのです。そして、その探し出した文字列の中の任意の文字列部分をgroup(1).value で取得できるのです。
さあ、完成したところで、デバッグしてみましょう。
F5を押します。
「読み込み」ボタンをクリックすると、htmlファイルのデータを取得できます。
「抽出」ボタンをクリックすると、左の文字列から、ちゃんと食べ物と理由を抜き出して表示されているのが分かりますね。
慣れないうちは、正規表現の書き方で苦労するかもしれませんが、
使いこなせると、格段にコーディングの効率が上がります。
ありがたい機能の一つです。
ブログゲットくんでも、大活躍の機能です。
ブログゲットくんのサイトはこちらですよ。
だい