• 締切済み

VBにおける文字列の部分一致検索

Hirorin_20の回答

回答No.2

InStrを使って出来ます。 「The apple ~ is red」を例に取れば、まず、「The apple」が本文で最初に存在する位置を求めます。あれば、次に「is red」について本文の先ほどの位置プラス「The apple」の文字数分以降に存在するかを求めます。存在すれば「The apple ~ is red」としてTrueになります。第一引数を本文、第二第三引数をフレーズ1,2とでもしてTrue/Falseを返すようにすればいいでしょう。

関連するQ&A

  • 部分一致検索

    VB2010にて部分一致検索についての質問です。 DataGridView1のセル(0,0)に文章(例:The apple is red.) があって、DataGridView2のセル(1,1)に単語(2つ以上も可能とする)(例:apple is) が入っていたとします。 DataGridView2のセル(1,1)に入っている単語がDataGridView1(0,0)のセルに入っている文章に含まれていたら、OKを返すという条件文を作りたいのですが、どう書いたらいいのかわかりません。 ご教授いただけると嬉しいです。よろしくお願いします。例は文中の単語検索ですが、可能ならば文頭、文末の検索にも対応していただけると嬉しいです。

  • 複数の文字列検索について

    VBというよりも、accessで利用したいのでVBAになるかと思いますが、 ある項目について文字列検索をしたいのですが、 001:"aaa" 002:"bbb" 003:"ccc" ・ ・ 100:"zzz" ※SELECT hoge FROM geho WHERE あああ Like "*%%%*"     ***%%%の値を個数分かえたい*** といったように複数パターンあり、クエリの条件節に記述できない状態です。 フォームを作成し、リストボックスに値を格納するところまではできたんですが、 その値を取得して、変数に格納することができません。 ヘルプではItemsSelectedを利用すればいけそうな感じでしたが、 使用例をはりつけて試してみてもエラーになります。 access97なので使えないメソッドだったりするんでしょうか? 何かよい知恵ももってらっしゃる方いらっしゃったらご教授願います。

  • strstrを利用しない文字列検索について

    キーボードから入力した文字列 str に対し, This is~の文字列中に str が出現するかどうかを判定して表示するプログラムを作成したいのですが、うまくコンパイルができません。 条件ですが、、、 ・forループを利用し、0文字目、1文字目と順に検索していく ・strstr関数およびstring.hを利用しない です。このプログラムをいじって教えてほしいです。 ややこしくて答えづらい質問かと思いますが、有識者の知恵を拝借したいです。よろしくお願いします。 #include <stdio.h> int main(void) { char str[256]; char s[] = "This is a pen. That is an apple."; int i,j,k,checker; printf("This is a pen. That is an apple.\n\n"); gets(str); for(j=0;j<256;j++) { for(i=j,k=0;str[k]!='\0';k++,i++) { if(str[k]==s[i]) { checker=1; } else { checker=0; } } } if(checker==0) { printf("NG!その文字列は含まれていません。\n"); } else { printf("OK!その文字列は含まれています。\n"); } }

  • mb_eregを使っての文字列検索、抽出について

    パターン="関数.+ます。" 上記パターンで、"関数"から"ます。"までを含む文字列を抽出する事は出来ました。が、 一番最初に出てくる"ます。"で検索をストップし、変数$matchに代入する事はできますか? (指定したキーワード"関数"以降の全ての"ます。"が変数に代入されてしまいます、最初に出てくる"ます。"まで抽出できれば充分なので。) キーワードやアドバイスがあればお教え下さい。 宜しくお願いします。 以下のプログラムで実行しました。 <?php //mb_eregについて $url="http://jp2.php.net/mb_ereg"; //アドレス指定 $result=file_get_contents($url);//取得 $text_contents=strip_tags($result);//タグを外す $sjis_text=mb_convert_encoding($text_contents,"SJIS","auto");//sjisに変換 echo("$sjis_text<br>");//本文出力 echo("----------------------------------------------<br>"); if(mb_ereg("関数.+ます。",$sjis_text,$match))//"関数"から"ます。"まで検索 echo("$match[0]<br>");//検索結果表示 ?>

    • ベストアンサー
    • PHP
  • VBA 曖昧一致CASE文のELSE

    以下の様な曖昧一致CASE文でElse判定がとれず困っています。 どの様にするべきでしょうか Select Case True Case str Like "*AAAA*" ' 処理1 Case str Like "*BBBB*" ' 処理2 Case Else ' Else処理 End Select この例で実行すると、全ての曖昧検索が一致しなくても 結果として処理2が走ってしまいます。

  • 時制の一致

    He has just said that trial (is going to) continue tomorrow at 9AM. この文章で、( )内が時制の一致を受けずに現在形になっています。現在の状況(これから裁判を続ける)がわかるのですが、このように現在の状況がわかりやすいように、時制の一致を無視する場合があると知りました。 でもそうなると、毎回無視しなくてはいけなくなるのでは?と思ってしまいます。(I thought he would like it.ではなくて、I thought he will like it.など) また、他でこういった例文を探したところ、I said.....という文でした。 これは動詞がsayのときに起こりすいのでしょうか? 上にあげた文のように現在完了の文の時に、時制の一致はそもそも起きるのでしょうか? おきるとすると、その場合は、過去に変換されるのでしょうか?それとも文意に従うのでしょうか?  例: I have told you that he didn't like me. (時制の一致??) のようになるかと思うのですが。。 よろしくお願いします。

  • VB6について質問です。

    フォルダを検索できるツールを作成してます。 【検索フォルダ】テキストボックスがあり、 例)C:\ と入力されてる場合、C:\の配下にあるフォルダをリストボックスに表示されます。 全てのフォルダを表示させるのではなく、 【検索条件】テキストボックスに 入力された文字列を (1)前方一致(2)完全一致(3)部分一致の 3つのオプションボタンにチェックを入れて検索ボタンで検索する処理を作成したいと思ってます。 全てのフォルダを表示させることはできたのですが、3パターンの検索条件で絞り込み表示させる方法がわかりません。。。。 Likeメソッドを使用すればよいのか… 方法わかる方いらっしゃいましたら教えてください。 よろしくお願いいたします。

  • フランス語に翻訳をしてほしいです。

    フランス語を勉強する上で参考にしたいのでコレらの英文をフランス語にしてほしいです。 The apple is red. The apple is not red. Is the apple red? The apple was red. The apple will be red. It is John’s apple. It is not John's apple. Is it John's apple? It was John's apple. It will be John's apple. I give John the apple. I gave John the apple. Do you give John the apple? I gave John the apple I will give John the apple? We want to give him the apple. We do not want to give him the apple. Do they give him the apple? We gave him the apple. We will give him the apple. She gives it to him. She does not give it to him. Does she give it to him? She gave it to him. She will give it to him

  • 時制の一致について。

    (1)A girl whose name is Jane came here yesterday. (2)The person who came here yesterday was a country girl whose name was Jane. ちょっと (2)は、まどろっこしい文にしましたが、(一番シンプルな文は、A girl named Jane came here. でいいんですよね。) 要は(1) 『~whose name is Jane ~』 と (2) 『~whose name was Jane~』が文の中で 同じ意味・状況を表すかを 確認したかったのです。 時制の一致で 現在形と過去形に別れますが、 厳密に、このあとJaneが改名するしない・・・などの複雑な状況を 考えなければ(これについては、いろいろ論争があるようですが、) おおよそ、同じ状況として考えていいと思っていいてよいのか、宜しくお願いいたします。

  • 時制の一致の問題が解けません

    時制の一致の問題が解けません 1. There (was/were) a lot of people at the party.2.Economics (interest/interests) me very much. 3.Five hundred dollars (is/are) enough to buy an electric guitar. 4.The United Nations (works/work) on a variety of issues. 5.The woman who is walking many bags (is/are) my brother. 【( )内の動詞を必要があれば適切な形に変えなさい】 6.We were told that he (leave) an hour before. 7.The author writes that men (have) different ways of thinking from woman. 8.Mary didn't know that water (boil) below 100 9.John said that Japanese national team (win) the match 3 to 1. 10.I learned that Himeji Castle (is) built about 400 years ago.