C# 简单学习正则表达式
第一步先要引入有关正则式的命名空间:
using System.Text.RegularExpressions;
第二步用指定的正则式构建一个正则表达式对象,下面的正则式是用来搜索长度为10的a-z的英文字母:
Regex obj = new Regex("[a-z]{10}"); |
最后,根据正则式在指定数据中检索匹配项,如果匹配IsMatch方法就会返回true。
MessageBox.Show(obj.IsMatch(“asdfghjkl”).ToString()); |
3个重要的正则式命令:
B |
在正则表达式中有3种类型的括号 方括号 “[“和花括号“{“ 。 方括号"["内是需要匹配的字符,花括号"{"内是指定匹配字符的数量。 圆括号“(“ 则是用来分组的。 |
C | 插入符号 “^” 表示正则式的开始。 |
D | 美元符号“$” 表示正则式的结束。 |
验证像ISOS190203 或 isos820830那样的前3位是不区分大小写的英文字母,剩余8位是数字。
在前面的表达式中只能匹配前3个是小写英文字母的发票编号,如果我们输入大写字母那就不能匹配了。所以为了确保前3个字母是不区分大小写的,我们就要用表达式^[a-zA-Z]{3}。
^[a-zA-Z]{3}[0-9]{7}$
验证简单的网址URL格式:
第一步:检查是否存在www:
^www. |
第二步:域名必须是长度在1-15的英文字母:
. [a-z]{1,15} |
第三步:以.com或者.org结束:
. (com|org)$ |
完整的表达式如下:
^www[.][a-z]{1,15}[.](com|org)$ |
YYYY/MM/DD格式的日期:
^(1[9][0-9][0-9]|2[0][0-9][0-9])[- / .]([1-9]|0[1-9]|1[0-2])[- / .]([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1])$ |
快捷命令
也可以用以下的快捷命令来简化正则表达式:
实际命令 | 快捷命令 |
[0-9] | d |
[a-z][0-9][_] | w |
0次或多次发生 | * |
至少一次发生 | + |
0次或1次发生 | ? |