【C#】正则表达式

目录:

1、什么是正则表达式

2、正则表达式的运用


一、什么是正则表达式

      正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

简而言之,使用正则表达式可以高效的对字符串的格式进行匹配判断。

(1)fmxk+.ac.cn :+ 号代表前面的字符必须至少出现一次(1次或多次)。

        eg: fmxk.ac.cn fmxkk.ac.cn fmxkkk.ac.cn ... ...


(2)fmxk*.ac.cn     :* 号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次)。

        eg: fmx.ac.cn fmxk.ac.cn fmxkk.ac.cn fmxkkk.ac.cn ... ...

        看懂了的就知道其实 fmxkk*.ac.cn fmxk+.ac.cn 的效果是一样的


(3)fmxkac.cn : ? 问号代表前面的字符最多只可以出现一次(0次、或1次)。

        eg: fmx.ac.cn fmxk.ac.cn


{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
        

        举个栗子:^[0-9]*$

$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。
[ 标记一个中括号表达式的开始。要匹配 [,请使用 \[。
^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。

想详细了解点这里


二、正则表达式的运用

(1)判断字符串是否全是数字:^[0-9]*$

引用:using System.Text.RegularExpressions;

string pattern = @"^[0-9]*$";
Regex rx = new Regex(pattern);
string str = “1234567890”;
if(rx.IsMatch(str))
{
    //全是数字执行的事件
}

string pattern = @"^[0-9]*$";
string str = "1234567890";
if(Regex.IsMatch(str, pattern))
{
    //全是数字执行的事件
}


(2)判断字符串是否全是英文字母

全为英文字母:^[A-Za-z]*$

全为小写英文字母:^[a-z]*$

全为大写英文字母:^[A-Z]*$


(3)判断字符串是否全是中文:^[\u4e00-\u9fa5]*$


加大难度:

(4)判断一个普通的车牌:

既:粤A66666   粤A6666B

规则:

第一个字符是中文:[\u4e00-\u9fa5]

第二个字符是英文:[A-Z]

往后是字符是英文字母和数字混合(必须存在,有且只要5个字符)[0-9A-Z]


所以最终结果是:^[\u4e00-\u9fa5][A-Z][0-9A-Z]{5}$


本文出自《粉墨记忆》 => 《【C#】正则表达式
转载时请注明出处及相应链接, 本文地址:https://www.fmxk.ac.cn/?post=18

WRITTEN BY

avatar


发表评论: