C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 正規表現


(過去ログ 105 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■62944 / inTopicNo.1)  正規表現
  
□投稿者/ ツ (1回)-(2011/11/11(Fri) 16:45:37)

分類:[.NET 全般] 

<a href = "www.yahoo.co.jp">

上記から、「"」のみを取得したいです。

どうすればいいでしょうか。
引用返信 編集キー/
■62945 / inTopicNo.2)  Re[1]: 正規表現
□投稿者/ επιστημη (2676回)-(2011/11/11(Fri) 18:56:03)
επιστημη さんの Web サイト
「"」のみを取得するのに正規表現使うまでもないっす。

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string src = "<a href = \"www.yahoo.co.jp\">";
            int index = 0;
            while ((index = src.IndexOf('\"', index)) >= 0)
            {
                Console.WriteLine("{0}番目に\"みっけ", index);
                ++index;
            }
        }
    }
}

引用返信 編集キー/
■62947 / inTopicNo.3)  Re[2]: 正規表現
□投稿者/ NF64 (26回)-(2011/11/11(Fri) 21:08:41)
正規表現を使ったバージョンも載せておきます。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string src = "<a href = \"www.yahoo.co.jp\">";
            System.Text.RegularExpressions.MatchCollection mc = System.Text.RegularExpressions.Regex.Matches(src, "\"");
            foreach (System.Text.RegularExpressions.Match m in mc)
                System.Console.WriteLine("index {0}, {1}", m.Index, m.Value);
        }
    }
}

引用返信 編集キー/
■62952 / inTopicNo.4)  Re[1]: 正規表現
□投稿者/ やじゅ (1973回)-(2011/11/12(Sat) 10:21:53)
やじゅ さんの Web サイト
2011/11/12(Sat) 10:32:09 編集(投稿者)

No62944 (ツ さん) に返信
> <a href = "www.yahoo.co.jp">
> 上記から、「"」のみを取得したいです。

本当に「"」のみを取得したいんでしょうか?
実は、「"」で囲まれた中身を取りたいんじゃないかな。
2重引用符に囲まれた文字列の正規表現 「\".*?\"」



引用返信 編集キー/
■62966 / inTopicNo.5)  Re[2]: 正規表現
□投稿者/ ツ (2回)-(2011/11/14(Mon) 09:05:47)
< >に囲まれた「"」を取得するのが目的です。
引用返信 編集キー/
■62967 / inTopicNo.6)  Re[3]: 正規表現
□投稿者/ shu (1084回)-(2011/11/14(Mon) 09:22:36)
No62966 (ツ さん) に返信
> < >に囲まれた「"」を取得するのが目的です。
「"」の位置でいいのですか?
引用返信 編集キー/
■62970 / inTopicNo.7)  Re[4]: 正規表現
□投稿者/ ツ (3回)-(2011/11/14(Mon) 10:58:38)
そうです。
引用返信 編集キー/
■62991 / inTopicNo.8)  Re[5]: 正規表現
□投稿者/ shu (1087回)-(2011/11/15(Tue) 07:46:45)
No62970 (ツ さん) に返信

これでどうでしょう?最初のもじを0番目とする場合初期化するときに-1にすると良いかと思います。

Imports System.Text.RegularExpressions

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim reg As New Regex("(?<bef>.*?)(?<trg><.*?>)")
        Dim pos As Integer = 0

        For Each m As Match In reg.Matches(TextBox1.Text)
            Dim Bef = m.Groups("bef").Value
            Dim Trg = m.Groups("trg").Value
            pos += Bef.Length
            Dim trgary = Trg.Split(""""c)
            If trgary.Length = 1 Then
                pos += Trg.Length
            Else
                For idx = 0 To trgary.Length - 2
                    pos += trgary(idx).Length + 1
                    Console.WriteLine("{0}:{1}", pos, TextBox1.Text.Substring(pos - 1, 1))
                Next
                pos += trgary(trgary.Length - 1).Length
            End If
        Next

    End Sub
End Class

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -