• ベストアンサー

VB2008 正規表現でHTMLタグを"大文字→小文字"に置換したい

KG_の回答

  • KG_
  • ベストアンサー率62% (34/54)
回答No.1

2番目のサイトはEmEditerの正規表現ですので、特殊なものなのでしょう。 (テキストエディタには独自の正規表現を含むものが多々あります。) RegexクラスのMatchesメソッドを使用して個別にString.ToLowerメソッドで 対応すれば可能ではないでしょうか。

u_keyyy_2006
質問者

お礼

ご回答ありがとうございます。 "\L"という表現はEmEditer独自のものなんですね。知りませんでした。 ToLowerはタグ以外の大文字も小文字になってしまうのでしょうか。 "<"か"</"で始まるタグだけを小文字にするにはどうしたらよいですか?

関連するQ&A

  • 正規表現で置換したい

    ブログのシステムを変更して、 記事中にある内部リンクの書き換えが必要となりました。 現在、記事中に post-001.html post-005.html  ・  ・  ・ post-853.html という文字列があります。 数字は飛び飛びでそれぞれ異なり500個ほどあります。 WordPressのプラグインの「Search Regex」を使って置換をしたいのですが、 正規表現で置換して、 ハイフンをアンダーバーに置換し、お尻の「.html」は削除して post_001 post_005  ・  ・  ・ post_853 としたいのですが、正規表現で置換する場合、 どのようにすればいいのでしょうか。 「post-」を ( ) でくくればいいのでしょうか。 「.html」削除するにはどうすればいいのでしょうか。 Search Regex に Search pattern(置換前の文字列)と Replace pattern (置換後も文字列)を入力する欄があります。 上のような文字列を置換したい場合は、 それぞれどのような記号を入力すればよいのでしょうか。 アドバイスをよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 正規表現で<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 >などにも対応したりと 条件がいろいろありすぎて色々試したのですが、 どうしても分かりませんでした。 申し訳ございませんが、お助け頂ければ幸いです。

  • 正規表現を使った置換処理。大文字の直前に「_」を入れたい

    正規表現を使った置換処理です。 大文字の直前に「_」を入れたいと思っています。 例:htmlLinkStr → html_Link_Str WSHとして以下のようなコードを1行記述しました。 WScript.Echo("htmlLinkStr".replace(/([A-Z]+)/g, "_" + RegExp.$1)); しかし「html_ink_tr」としょぼい結果しかえられません。 「RegExp.$1」の使い方が悪いのかもしれません…。 ちなみにVBSでは以下のコードで成功しています。 ので大きくはずしてはいないと思うのですが… Set regEx = New RegExp regEx.Pattern = "([A-Z]+)" regEx.Global = True MsgBox regEx.Replace("htmlLinkStr", "_$1") JavaScriptでの正規表現の使い方に詳しい方よろしくお願いします。

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

    正規表現の検索及び置換について質問させていただきます。 下記のような文字列があったとします。 「私は、<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 以上、宜しくお願いいたします。

  • 正規表現で指定した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」自体を探してしまいますし・・・。 ちょっと行き詰ってしまいまして。 ご教授いただければ幸いでございます。 宜しくお願いいたします!!

  • VB2010にて置換の方法

    TextBox1に'[00:00:00]'や'[05:10:01]'等と入力されています。 (00には00~59までの数字が入力されいています。) これを全てNULLに置換したいのですが、どうやるんでしょうか? 下記の方法だと、一々00~59までコードを書かないといけません。 Dim a sa String Dim b sa String a=TextBox1.Text b=Replace(a, "[00:00:00]", "") TextBox2.Text=b

  • 正規表現の指定方法を教えてください。

    VB.NETなのですが、変数txt内にWebページの ソースを代入して、タグを削除したいのですが、 タグを削除するところまで出来たのですが、 1行以上連続した改行をなくしたいのですが、 どのような書き方をすれば良いでしょうか。 改行をなくす書き方は下のようになると分かったのですが、 1行以上連続した場合の指定の仕方がわからないので、 ご教示頂きたいです。 よろしくおねがいいたします。 txt = System.Text.RegularExpressions.Regex.Replace(txt, "^\n", "")

  • 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" とすると、正常に全文字数が入る。 半角文字列の塊なのに、どうしてこのようなことが起きるのでしょうか? また、これの対応策は何ですか? 以上、よろしくお願いします。

  • VBで正規表現

    VBで正規表現 下記のような文字列がTextBoxに入力されています。 <a></a>で囲まれた部分の抽出は出来ましたが、 <td></td>タグで囲まれた’18’も取り出したいのですが正規表現ではどの様に記述すれば宜しいでしょうか? 関係有りそうなコードはこれです。 Regex("<a href=""(?<url>.*?)"".*?>(?<text>.*?)</a>" ---------------------------------------- <TR bgcolor=#ffffff> <TD> 18 </TD> <TD><a href="main.py?qtype=userpage&teamnum=162&username=KOTOKO"> KOTOKO </a> </TD> <TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=KOTOKO&pts=11379753" target="_blank"> 11379753 </a> </TD> <TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=KOTOKO&pts=16190&t=wus&bg=3" target="_blank"> 16190 </a> </TD> </TR> ----------------------------------------

  • 改行を含んだ文字列を正規表現で置換するには?

    正規表現で、改行を含んだ文字列を置換しようと思っています。 例えば下の「infile.txt」にある aaa bbb という(2行にわたる)文字列を zzz という文字列に変換させたい訳です。 試しに「test.vbs」のようなコードを書いてみましたが、これでは上手く行きませんでした。 上手く変換されるようにするには、どうしたら良いでしょうか? ----------------------------------------------------- ○「test.vbs」の内容 Set fso = CreateObject("Scripting.FileSystemObject") Set inFile = fso.OpenTextFile("C:\infile.txt") Set outFile = fso.CreateTextFile("C:\outfile.txt") Set regEx = New RegExp regEx.pattern = "aaa\nbbb" repStr = "zzz" Do Until inFile.AtEndOfStream tempLine = inFile.ReadLine repLine = regEx.Replace(tempLine, repStr) outFile.WriteLine repLine Loop inFile.Close outFile.Close ----------------------------------------------------- ○「C:\infile.txt」の内容 aaa bbb ccc