• 締切済み

VB6.0の正規表現を使って、文字列を変更する方法は?

miyuyuの回答

  • miyuyu
  • ベストアンサー率61% (30/49)
回答No.1

こんにちは Rplaceでワイルドカードは使えません ヘルプを参照ください

関連するQ&A

  • VBA・VB6.0・VB.NETの文字列型

     失礼します。  Excel97/2000のVBAの文字列型変数は、アスキーコード129-159/224-252のデータを保持できないみたいですが、これはVB6.0/VB.NETなどでもそうなのですか?  つまり、VBAでは、 Sub main()  Dim s as String  s = Chr$(130)  Sheet1.Cells(1, 1) = Asc(s) End Sub  とすると、シートのA1に「0」が表示されてしまうということです。  というのも、私はVB6.0/VB.NETを持っていないのですが、ちょっとVB2.0時代のコードを使う必要が生じたので、VBAで実行してみたところ、以上のような仕様の違いに気付いたのです。  これがVBAだけの特性なのか、最近のVBはこういう仕様になってしまったのかが知りたいのです。

  • VB6で配列を文字列に変換する方法?

    VisualBasic6を使っております。 Dim ary() As Byte Dim s as String 配列を文字列に変換したり、文字列を配列にしたいのですが どのようにすれば良いのでしょうか?

  • 正規表現を使った文字列の検索及び置換について

    正規表現の検索及び置換について質問させていただきます。 下記のような文字列があったとします。 「私は、<gaiji gaijisyurui="0001" gaijicode="F040" /><gaiji gaijisyurui="0002" gaijicode="F041" />で、 <gaiji gaijisyurui="0003" gaijicode="F042" />です。」 この文章から  <gaiji gaijisyurui="0001" gaijicode="F040" />  <gaiji gaijisyurui="0002" gaijicode="F041" />  <gaiji gaijisyurui="0003" gaijicode="F042" /> の部分を検索して、それぞれ  <外字0001F040>  <外字0002F041>  <外字0003F042> と置き換え、最終的には、  「私は、<外字0001F040><外字0002F041>で、<外字0003F042>です。」 という文字列にする関数を作成したいと思っておりますが、どのようにソースを作ればよろしいのでしょうか? アドバイスや具体的なソースコードをいただけると非常に助かります。 現在、途中までソースを作成しているのですが、文字数制限でソースの半分も入りきらなかったため大雑把に書かせていただきます。 ※※※以降の処理が分かりません。 検索結果に対して文字列置換を行っても元の文字列内の置換にはならない? Private Function GaijiChange(ByVal pNaiyo As String) As String Dim wNaiyo As String = "" ' 置換後文字列 Dim wGaijisyurui As String = "" Dim wGaijicode As String = "" Dim wChangeWord As String = "" Dim wChangeStr As String = "" Dim Work As String = "" ' 正規表現で<gaiji>タグを検索 Dim wSeikiHyogen As String wSeikiHyogen = "<gaiji gaijisyurui=\" & """" & "[0-9a-zA-Z]{4}\" & """" & " gaijicode=\" & """" & "[0-9a-zA-Z]{4}\" & """" & " />" '正規表現 Dim wRegex As New System.Text.RegularExpressions.Regex( _ wSeikiHyogen, System.Text.RegularExpressions.RegexOptions.IgnoreCase) ' 文字列にに含まれる<gaiji>タグを全て検索 Dim wMc As System.Text.RegularExpressions.MatchCollection = wRegex.Matches(pNaiyo) For Each m As System.Text.RegularExpressions.Match In wMc ' 検索結果からgaijisyuruiを取得 wGaijisyurui = ' 検索結果からgaijicodeを取得 wGaijicode = ' 置換文字列作成 wChangeWord = "<外字" & wGaijisyurui & wGaijicode & ">" ' 検索結果を置換 ' ※※※ Next Return wNaiyo End Function 以上、宜しくお願いいたします。

  • VB2010 TextBoxの文字列に正しく入力されないのは何故ですか

    VB2010 TextBoxの文字列に正しく入力されないのは何故ですか? string型の変数に文字列を入れ、TextBox.Textに代入すると文字列の後ろが切れてしまう。 Dim st As String st="s01114DG000555<0?e09" TextBox.Text = st この場合、TextBox.Textには"s01114DG000555<0"となり、後ろの4文字が切れてしまっている。 ちなみに、 TextBox.Text = "s01114DG000555<0?e09" とすると、正常に全文字数が入る。 半角文字列の塊なのに、どうしてこのようなことが起きるのでしょうか? また、これの対応策は何ですか? 以上、よろしくお願いします。

  • 日付型の文字列への変換 VB2008

    VB2008を使っています。 日付型のデータがあり、それを文字列にしようと思っています。 私がごっちゃまぜになっているのは、以下の3つです。 (1) Foamt(値, 書式) (2) Strings.Foamt(値, 書式) (3) String.Format(書式, 値) Option Strict On Option Infer Off Dim d As Date Dim s As String d = Date.Parse("2009/07/30") s = Format(d, "yy/mmm/d") '(1)の場合 とすると、 sは "09/Jly/30"と思っていましたが "09/00/30"となりました。 (Format) http://www.red.oit-net.jp/tatsuya/vb/date.htm 何が駄目なのでしょうか? (1)、(2)、(3)でそれぞれ 09/Jly/30と表示させたいのですが、 ご存知の方教えてください。 また、(1)~(3)は何が違い、VB2008では何を使うのが一番よいのでしょうか?

  • 正規表現で<BR>の行を除外したいです。 VB.NET

    VB.NETで正規表現を使って2つの文字列に囲まれた部分を 取得したいのですが、文字列の先頭と末尾の部分の<BR>の行と 空行を削除したいです。 具体的には対象の文字列が ”ABC <BR> <BR> あいうえお <BR> かきくけこ <BR> さしすせそ <BR> <BR> <BR> XYZ” となっていた場合に ”あいうえお <BR> かきくけこ <BR> さしすせそ” を取得したいです。 現在このようになっています。 Public STR As String Sub Form1_Load Dim sr As New System.IO.StreamReader("c:\0.html", system.Text.Encoding.Default) STR = sr.ReadToEnd TextBox2.Text = "(?<data>.+?)" End Sub Sub Button1_Click  Dim A As String = "ABC"  Dim Z As String = "XYZ"  Label1.Text = A & TextBox2.Text & Z  Dim r As New Regex(Label1.Text, RegexOptions.Singleline)  Dim m As System.Text.RegularExpressions.Match  Try  TextBox1.Text = r.Match(STR).Result("${data}")  Catch ex As Exception  Console.WriteLine("Error")  End Try End Sub <BR>が<br>や<Br><bR>< br >などにも対応したりと 条件がいろいろありすぎて色々試したのですが、 どうしても分かりませんでした。 申し訳ございませんが、お助け頂ければ幸いです。

  • 正規表現で抜き出した特定の文字列をDBに格納する

    外部Webページのソースから正規表現を用いて特定の文字列を抜き出したいと思っています。外部Webページのソースは以下の通りです。 <td>  <div class="s-box left">   <a href="URL"><img src="" alt="" width="" height="" border="" class="book" /></a>   <h3><a href="URL">書名</a></h3>   <h4>著者:文字列<br />定価(税込):500円</h4>  </div>  <div class="s-box center">   <a href="URL"><img src="" alt="" width="" height="" border="" class="book" /></a>   <h3><a href="URL">書名</a></h3>   <h4>著者:文字列<br />定価(税込):710円</h4>  </div>  <div class="s-box right">   <a href="URL"><img src="" alt="" width="" height="" border="" class="book" /></a>   <h3><a href="URL">書名</a></h3>   <h4>著者:文字列<br />定価(税込):730円</h4>  </div> </td> 上記のようなソースからdiv classごとに、 書名 著者:文字列 定価(税込):---円 という具合に抜き出したく思っていまが、正規表現がわからずプログラムが組めません。また、その抜き出した文字列をDB(MySQL)に自動的に格納するためにはどうしたらよいか。どなたかご教授頂けないでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 文字列の否定の正規表現

    文字列の否定の正規表現 次のような「File」の前の文字列を大文字に置き換えるという文で 「common」という文字列だけはそのまま置き換えないようにしたいのですが、 $string = "commonFile aaFile"; $pattern = '/(\w+)(?![common])(File)/e'; $replacement="ucwords('\\1')"; $string = preg_replace($pattern, $replacement, $string); print htmlspecialchars($string); //Common Aa と表示される このやり方だと「\w+」が効いてるせいなのか先読み否定の「?![common]」が効いてくれません・・・ $pattern = '/(aa)(?![common])(File)/e'; print htmlspecialchars($string); //commonFile Aa と理想とする結果が表示される と具体的な文字列だと要求どおりになるのですが、 そうではなくて「File」の前が「common」の時だけ無視して欲しいのです。 どのように記述すれば良いのでしょうか?

    • ベストアンサー
    • PHP
  • ExcelVBAマクロでの正規表現の方法

    ExcelVBAマクロについて確認させてください。 下記のように読み込みたいファイルをフォームで指定して それを変数aに読み込ませています。 変数aから、半角で書かれた括弧つきの数字(1)~(99)またはは全角で書かれた括弧つきの数字 (1)~(99)の文字列を削除したいのですが、例として"(1)"を削除する場合、次のような命令文 a = Replace(a, "(1)", "")のような書き方でもいいのですが、正規表現を使って もっと効率良い書き方がありますでしょうか。 ぜひご教授下さい。 以上、よろしくお願いします。 ---------------------------------- Sub sample() Dim buf As String Dim a As String buf = Application.GetOpenFilename(FileFilter:="テキスト文書,*.txt", Title:="サンプル") 'フルパスも含めたファイル名をbufに代入 With CreateObject("Scripting.FileSystemObject").GetFile(buf).OpenAsTextStream '指定したファイルを開く a = .ReadAll 'テキスト文書の内容を文字列aに代入 .Close '指定したファイルを閉じる End With End Sub

  • 正規表現で指定したURLに飛びたいのですが・・・・

    お世話になっております。 VB2005ユーザーです。 こちらで回答をいただくみなさんには頭が下がる思いでいっぱいです。 もう少々、お力をお貸しいただけませんか。 宜しくお願いいたします。 当方、環境はVB2005です。 WebBrowserにて、HTMLを操作していくプログラムに挑戦しています。 ある特定の文字列のリンクに飛ぶには、正規表現を使用し、URLを抽出するというところまでわかったのですが、 この正規表現の部分をwindowsフォーム内のテキストボックスの文字列にするにはどのようにしたらよいでしょうか? 以下は当方がチャレンジしましたが、無理だったパターンです。 Dim r As Regex = New Regex( _ "<a\s+[^>]*href\s*=\s*(?:""(?<1>[^""]*)""|(?<1>[^\s>]+))[^>]*\s*.*" + TextBox1.text, _ RegexOptions.IgnoreCase Or RegexOptions.Compiled) Dim m As Match = r.Match(.Document.Body.InnerHtml) Dim St As String = m.Groups(1).Value '拾ってきたコード .Navigate(St) ・・・というようにしました。 上記の「+ TextBox1.text」の部分にテキストボックス内の文字列を挿入したいのです。 「+ TextBox1.text」の箇所を「TextBox1.text"」とすれば「TextBox1.text」自体を探してしまいますし・・・。 ちょっと行き詰ってしまいまして。 ご教授いただければ幸いでございます。 宜しくお願いいたします!!