xml地图|网站地图|网站标签 [设为首页] [加入收藏]

皇家娱乐登录正则表达式,Func和Action委托的区别

来源:http://www.ccidsi.com 作者:集成介绍 人气:71 发布时间:2019-11-20
摘要:咱俩要解析叁个HTML文档时可应用正则表达式获得标签内容 例子: 以从字符串中抽取全体A标签的 id号和内容为例: a id="1" target="_blank"aaaaaaaaaa/a 正则表明式: a[^]*id[^]*=[^]*"(?ID[^]*)"[^

咱俩要解析叁个HTML文档时可应用正则表达式获得标签内容
例子:
以从字符串中抽取全体A标签的 id号和内容为例:
<a id="1" target="_blank">aaaaaaaaaa</a>
正则表明式:
<a[^<]*id[^<]*=[^<]*"(?<ID>[^<]*)"[^<]*target[^<]*=[^<]*"[^<]*_blank[^<]*" [^<]*>(?<content>[^<]*)</a>
正则分解:
[^<]* 是一个很有用的咬合,能固定到下贰个查询关键字
(?<ID>[^<]*)  用于获取贰个也许三个值直到碰着下贰个重视字
<ID> 相同三个正则的变量,给用()号拿到的开始和结果打开标记,以便于程序的调用
C#调用的例证:
string [email protected]"<a[^<]*id[^<]*=[^<]*"(?<ID>[^<]*)"[^<]*target[^<]*=[^<]*"[^<]*_blank[^<]*" [^<]*>(?<CONTENT>[^<]*)</a>";
string strSource="<a id="1" target="_blank">aaaaaaaaaa</a>"
System.Text.RegularExpressions.Regex r;
                System.Text.RegularExpressions.MatchCollection m;
                mc= new System.Text.RegularExpressions.Regex(strRegex, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
               ro = mc.Matches(strSource);
if (ro.Count >= 0)
 {
   for (int i = 0; i < m.Count; i )
    {
        //取出ID和内容
         string id = ro[i].Groups["ID"].Value;
         string topic = ro[i].Groups["CONTENT"].Value;
    }
 }

序言:上边几条都是依据本身花销经历和英特网资料收拾总括的,初读书人可相当入门学习,加深圳影业公司像,高手请54.
Func和Action委托的区分和精炼利用 1、二种委托的大范围情势和区分
(1卡塔 尔(英语:State of Qatar)、Func委托有5个重载情势,差距仅在于它所针对的主意的签字的参数个数,分别如下:

例子: 以从字符串中抽取全体A标签的id号和剧情为例: aid="1"target="_blank"aaaaaaaa...

Func<TResult>

Func<T,TResult>

Func<T1,T2,TResult>

unc<T1,T2,T3,TResult>

Func<T1,T2,T3,T4,TResult>
当中T,T1,..T4是信托指向的办法的参数的档期的顺序,TResult为艺术的回到类型。
(2卡塔 尔(英语:State of Qatar)、Action委托也可以有5个重载方式,分别如下:
Action

Action<T>

Action<T1,T2>

Action<T1,T2,T3>

Action<T1,T2,T3,T4>
在这之中T,T1,..T4是委托指向的情势的参数的花色。
从地点的嘱托格局大家就足以剖析出来,Func和Action委托的独一区别在于Func要有再次回到值, Action未有重返值。
2、简单示例代码

皇家娱乐登录 1皇家娱乐登录 2代码

  class Program
    {
        static void Main(string[] args)
        {
            int num = 5;
            /*  Func和Action委托的独步天下差异在于Func要有重返值, Action未有回去值 */
            FirstCalcSquare calFirst = Square;//delegate
            Console.WriteLine("The square of {0} is {1}.", num, calFirst(num));

            Func<int, int> funcTest = Program.Square;//Func
            Console.WriteLine("The square of {0} is {1}.", num, funcTest(num));

            SecondCalcSquare calSecond = GetSquere;
            calSecond(num);//delegate

            Action<int> actionTest = Program.GetSquere;
            actionTest(num);//Action

            Console.ReadLine();
        }
        private delegate int FirstCalcSquare(int input);
        private static int Square(int input)
        {
            return input * input;
        }

        private delegate void SecondCalcSquare(int input);
        private static void GetSquere(int input)
        {
            Console.WriteLine("The square of {0} is {1}.", input, input * input);
        }

    }

 
附1:通过命令行保存webservice为本地的类
不时用到那么些功用,通过如下的vs命令行:
wsdl    /l:cs  /n:Test
表明:wsdl url   /l:cs(钦定语言)  /n:(命名空间)

附2:c#正则表明式使用小结 生龙活虎、正则表达式概述
1、正则表达式可以作为是风度翩翩种有一定功能的微型编制程序语言:在大的字符串表明式中一直二个子字符串。它不是生龙活虎种新才干,最早是在unix情形中成本的,与perl一齐利用的比较多。ms把它移植到windows中,System.Text.RegularExpression命名空间中的多数.net类都协理正则表明式。
2、首要包括的八个功效
(1卡塔尔生龙活虎组用于标志字符类型的转义字符。您或者熟识dos表明式中的*字符表示放肆字符串(比如,dos命令dir pro*会列出装盛名称以pro初阶的文件)。
(2卡塔尔国三个系统。在探究操作中,它把字符串和中间结果的风姿罗曼蒂克风华正茂部分组成起来。
二、示例
1、不足为道的一定字符或转义系列

标记        含义        示例              匹配的身体力行
^     输入文本的起来    ^a       a,但只可以是文件的首先个字符
$     输入文本的最终    z$         z,但只可以是文本的最后三个字符
.     除了换行符(n)  a.c        abc,azc,皇家娱乐登录 3
       外全数单个字符
*     >=0次的领路字符   ab*c     ac,abc,abbc,皇家娱乐登录 4
     >=1次的引导字符   ab c     abc,abbc,abbbc,皇家娱乐登录 5
?     能够重复0次或1次  ab?c       ac恐怕abc
       的初始字符   
s    猖獗空白字符      sa      [space]a,ta,na
S    s的补集          Sa      aa,ba皇家娱乐登录 6不能是ta,na等
d    0-9的数字         da      1a,2a,皇家娱乐登录 79a
D    d的补集          Da       aa, a..不会是数字和a的结缘
b    字边界             abcb   以abc结尾的此外公文
B    不是字边界的职责   BabcB  字中间的其余abc

w    单词字符,指大小写字母、0-9的数字、下划线
W    w的补集

粗略示例代码:

皇家娱乐登录 8皇家娱乐登录 9Code
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace MyCsStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.^和$
            string strSource = "think in c# deeply";
            Regex myReg = new Regex("think in c# deeply");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            myReg = new Regex("^think in c# deeply$");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            myReg = new Regex("^think in c# deep$");
            Console.WriteLine(myReg.IsMatch(strSource)); //false
            myReg = new Regex("^Think in c# deeply$");
            Console.WriteLine(myReg.IsMatch(strSource));//false

            //带换行的场所
            strSource = @"think in 
c# deeply";
            myReg = new Regex("think in rnc# deeply");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            myReg = new Regex("^think in rnc# deeply$");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            myReg = new Regex("^think in c# deeply$");
            Console.WriteLine(myReg.IsMatch(strSource)); //false
            myReg = new Regex("^think in c# deeply$");
            Console.WriteLine(myReg.IsMatch(strSource));//false

            //2..,*, ,?
            strSource = "abc xybzac acbab";
            myReg = new Regex(".b");
            Console.WriteLine(myReg.Matches(strSource).Count); //4处匹配
            strSource = "abcdefg asdfghjkbedk aabccd";
            myReg = new Regex("a*b");
            Console.WriteLine(myReg.Matches(strSource).Count); //3处匹配
            myReg = new Regex("a b");
            Console.WriteLine(myReg.Matches(strSource).Count); //2处匹配
            myReg = new Regex("a?b");
            Console.WriteLine(myReg.Matches(strSource).Count); //3处匹配

            //3.s和S
            strSource = "aoe iuv abc uvaw abcxyz";
            myReg = new Regex(@"sa");
            Console.WriteLine(myReg.Matches(strSource).Count); //2处匹配
            myReg = new Regex(@"Sa");
            Console.WriteLine(myReg.Matches(strSource).Count); //1处匹配

            //4.d和D
            strSource = "123aoe iuv abc uv789aw abcxyz";
            myReg = new Regex(@"da");
            Console.WriteLine(myReg.Matches(strSource).Count); //2处匹配
            myReg = new Regex(@"Da");
            Console.WriteLine(myReg.Matches(strSource).Count); //2处匹配

            //5.b和B
            strSource = "aoe iuv abc uv789aw abcxyz";
            myReg = new Regex(@"ba");
            Console.WriteLine(myReg.Matches(strSource).Count); //3处匹配
            myReg = new Regex(@"Ba");
            Console.WriteLine(myReg.Matches(strSource).Count); //1处匹配
            myReg = new Regex(@"BaB");
            Console.WriteLine(myReg.Matches(strSource).Count); //1处匹配

            //6.w和W
            strSource = "abc123_()*&$";
            myReg = new Regex(@"w");
            Console.WriteLine(myReg.Matches(strSource).Count); //7处匹配
            myReg = new Regex(@"W");
            Console.WriteLine(myReg.Matches(strSource).Count); //5处匹配

            Console.ReadLine();
        }
    }
}

2、特殊字符的相配

皇家娱乐登录 10皇家娱乐登录 11Code
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace MyCsStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.,双引号",和星号*
            string strSource = "\\";
            Regex myReg = new Regex(@"^\\$");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1
            strSource = @"\";
            myReg = new Regex(@"^\\$");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1

            strSource = """;
            myReg = new Regex(@"^""$");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1

            strSource = """";
            myReg = new Regex(@"^""""$");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1

            strSource = "*";
            myReg = new Regex(@"^**$");
            Console.WriteLine(myReg.IsMatch(strSource)); //false
            Console.WriteLine(myReg.Matches(strSource).Count); //0

            strSource = "**";
            myReg = new Regex(@"^**$");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1

            Console.ReadLine();
        }
    }
}

3、不足为道重复描述字符
{n}  匹配前边的字符n次
{n,}  相称前边的字符n次或多于n次
{n,m}  相配后面包车型地铁字符n到m次
示例:

皇家娱乐登录 12皇家娱乐登录 13Code
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace MyCsStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.{n},{n,}和{n,m} 
            string strSource = "abc123xyz";
            Regex myReg = new Regex(@"d{3}");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1

            myReg = new Regex(@"w{9}");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1

            myReg = new Regex(@"w{10}");
            Console.WriteLine(myReg.IsMatch(strSource)); //false
            Console.WriteLine(myReg.Matches(strSource).Count); //0

            myReg = new Regex(@"d{1,}");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1

            myReg = new Regex(@"d{3,}");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //1

            myReg = new Regex(@"d{4,}");
            Console.WriteLine(myReg.IsMatch(strSource)); //false
            Console.WriteLine(myReg.Matches(strSource).Count); //0

            myReg = new Regex(@"D{1,3}");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //2

            myReg = new Regex(@"D{2,3}");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //2

            myReg = new Regex(@"D{4,5}");
            Console.WriteLine(myReg.IsMatch(strSource)); //false
            Console.WriteLine(myReg.Matches(strSource).Count); //0

            Console.ReadLine();
        }
    }
}

4、表示相当“大概”的|

皇家娱乐登录 14皇家娱乐登录 15Code
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace MyCsStudy
{
    class Program
    {
        static void Main(string[] args)
        {
            //| OR的关系
            string strSource = "abc123xyz";
            Regex myReg = new Regex(@"(d|[a-zA-Z]){3}");
            Console.WriteLine(myReg.IsMatch(strSource)); //true
            Console.WriteLine(myReg.Matches(strSource).Count); //3

本文由68399皇家赌场发布于集成介绍,转载请注明出处:皇家娱乐登录正则表达式,Func和Action委托的区别

关键词: 68399皇家赌场 c#

上一篇:皇家娱乐平台3使用技巧总结

下一篇:没有了

最火资讯