正则表达式就是一组字符串运算规则,你需要先把元字符记熟,然后就可以随意组合获得你想要的结果。把一些常用的正则表达式背下来也是一种方法,再加以变化获得你想要的结果。

正则表达式不需要刻意的去学习,当用到的时候上网搜索一下,基本上你能想到的都可以搜到,但是需要了解一下,这样就可以判断自己搜到的正则表达式是否符合自己的规则。

正则表达式很多,学起来的难度也挺大的,但是简单好用,建议用到的时候搜一下。

表1.常用的元字符
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
表2.常用的限定符
代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
表3.常用的反义代码
代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^hua] 匹配除了hua这几个字母以外的任意字符

举例说明

//  匹配中文字符的正则表达式: [u4e00-u9fa5]    //匹配中文还真是个头疼的事,有了这个表达式就好办了
// 匹配双字节字符(包括汉字在内):[^x00-xff]
// 匹配空白行的正则表达式:ns*r //评注:可以用来删除空白行
// 匹配首尾空白字符的正则表达式:^s*|s*$ //可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)
// 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
// 匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
// 匹配帐号是否合法(字母开头,允许4-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{3,15}$
// 匹配国内电话号码:d{3}-d{8}|d{4}-d{7} //匹配形式如 1111-1111111 或 111-11111111
// 匹配腾讯QQ号:[1-9][0-9]{4,} //腾讯QQ号从10000开始
// 匹配中国邮政编码:[1-9]d{5}(?!d) //中国邮政编码为6位数字
// 匹配身份证:d{15}|d{18} //中国的身份证为15位或18位
// 匹配ip地址:d+.d+.d+.d+
// 匹配特定数字:^[1-9]d*$    //匹配正整数
// 匹配特定字符串: [A-Za-z0-9]+$   //匹配由数字和26个英文字母组成的字符串
// 匹配全角: [^uFF00-uFFFF]
// ^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
// 匹配数字:“[0-9]*$
// 匹配m-n位的数字:^d{m,n}$
// 验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间
// 验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
// 匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/

下面是一个.NET正则表达式的类,其实也可以不用写,微软已经封装的很好了,这里只是做了一个简单的操作。

/// <summary>
/// 操作正则表达式的公共类
/// </summary>
public class RegexHelper
{
/// <summary>
/// 验证输入字符串是否与模式字符串匹配,匹配返回true
/// </summary>
/// <param name="input">输入字符串</param>
/// <param name="pattern">模式字符串</param>
public static bool IsMatch(string input, string pattern)
{
return IsMatch(input, pattern, RegexOptions.IgnoreCase);
} /// <summary>
/// 验证输入字符串是否与模式字符串匹配,匹配返回true
/// </summary>
/// <param name="input">输入的字符串</param>
/// <param name="pattern">模式字符串</param>
/// <param name="options">筛选条件</param>
public static bool IsMatch(string input, string pattern, RegexOptions options)
{
return Regex.IsMatch(input, pattern, options);
}
}

.NET通用工具——正则表达式的更多相关文章

  1. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  2. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  3. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  4. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  5. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  6. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  7. 【JS基础】正则表达式

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

  8. JavaScript 正则表达式语法

    定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...

  9. [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)

    数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...

随机推荐

  1. react native 中es6语法解析

    react native是直接使用es6来编写代码,许多新语法能提高我们的工作效率 解构赋值 var { StyleSheet, Text, View } = React; 这句代码是ES6 中新增的 ...

  2. SQL 语句 写法

    SELECT * FROM article where  userid=4 order by sort asc LIMIT 0,10; 先根据写where 条件,再排序,在LIMIT.

  3. [Nginx]Nginx的基本配置与优化1(完整配置示例与虚拟主机配置)

    ---------------------------------------------------------------------------------------- 完整配置示例: [ n ...

  4. 使用__slots__限制实例的属性

    1.给实例化的对象添加新的属性 看下面一段代码,然后给实例化的对象s添加或者修改属性 class Student(object): name='china' s = Student() s1=Stud ...

  5. EF 踩过的坑

    ef + mysql-8.0.12-winx64 这个版本的mysql,当一个类为树型结构,会迁移报错. 数据迁移提示:No connection string named 'TaoBaoEntiti ...

  6. python列表中,多次追加元素

    在列表中追加元素,可以使用append(),列表相加也可以用extend()函数,多次追加元素可以用“+”实现 l=[1,2,3,4,5] x=6 y=7 z=8 l=l+[x]+[y]+[z] pr ...

  7. 设置HTML编码为UTF-8

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. RGB图片取大于阈值部分

    #include<opencv2\opencv.hpp> #include <iostream> using namespace cv; using namespace std ...

  9. 解决python3.6的UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 28613: illegal multibyte sequence

    这是python3.6的print()函数自身有限制,不能完全打印所有的unicode字符. 主要的是windows下python的默认编码不是'utf-8',改一下python的默认编码成'utf- ...

  10. 四、API使用参考

    官方文档:https://docs.blender.org/api/blender_python_api_current/info_api_reference.html Blender有很多互连数据类 ...