【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)fmxk?ac.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
一名软件开发者,平时把自己的学习成果放在博客上面,也会放一些自己在用的小工具,有问题大家可以留言,我们一起讨论哦!