C# 正規表現

 C# ポケットリファレンスを買ってきたのでまずは実験。

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string s1 = "abaabaaaaaabaaaaaaaaabbvDE24SS \tzzz";


           Regex rex1 = new Regex("z.*z");


           Match m1 = rex1.Match(s1);


           Console.WriteLine("{0}, {1}", m1.Success, m1.Value);




           MatchCollection mc = Regex.Matches(s1, "b*a");
           Console.WriteLine("{0}",mc.Count);


           foreach (Match match in mc)
           {

               Console.WriteLine("MatchCollectionでのマッチの箇所{0}", match.Value);
           }

           Console.WriteLine("Matchで検索後,NextMatchで次のマッチを検索");

            Match m2 = Regex.Match(s1, "a*b");

            while (m2.Success)
            {
                Console.WriteLine("Match.NextMatchでのマッチ箇所: {0}",m2.Value);
                m2 = m2.NextMatch();
            
            }
        }
    }
}

 

 

正規表現

"b*a");

の意味がわかりませんでしたが、

 

*  =  直前の文字の0回以上の繰り返し。

b*

a*

 

a*b  aを0回以上繰り返す     bは一回だけ

b*a bを0回以上繰り返す    a は一回だけ

 

 

で意味が代わる。

 

 

C#の絵本

で概念的なイメージが得られて非常に助かります

 

プロパティ

<get><value>

これらは インスタンス化したオブジェクトのフィールドに対して働く。

 

ネームスペース

ークラス

 ーメソッド

 ープロパティ

 

があって、結局のところそのクラスの処理は書いてある。

昔、Javaでクラスファイルを除いた事がありますがあんな感じなんでしょうか。

 

 

qiita.com

 

Reference Source

 

これは面白い。

 

ちゃんと

ネームスペース、クラス、メソッド、プロパティの仕組みに則って書かれてますね。

 

これをアセンブリ って言うのかな?