常用正则表达式—想说爱你不容易

到底什么是正则表达式?

在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

常用元字符

代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

常用限定符

代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

常用反义词

代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符


 本文的实例不一定是相关问题的终极答案。事实上,与正则表达式有关的问题很少会有一个终极答案。更常见的情况时同时存在多种答案,它们没有对错之分,它们之间的区别只体现在你希望你的匹配操作严格到什么程度。

R1.匹配中文字符


1

[\u4e00-\u9fa5]

解析:使用utf-8编码时汉字的范围是u4e00-u9fa5

R2.匹配双字节字符(包括汉字)


1

[^\x00-\xff]

解析:\x00-\xff使用8位也就是单字节来表示字符,^是取非,也就是说除了单字节的字符,剩下就是双字节的字符了。

R3.匹配空白符

r3.1匹配首尾空白符


1

^\s+|\s+$

解析:^匹配字符串开头,$匹配字符串结尾,\s+匹配空格出现一次或者多次。

R4匹配邮箱


1

(\w+\.)*\[email protected](\w+\.)+[A-Za-z]+

解析:(\w+\.)*\w+负责匹配电子邮件地址的用户名部分(@之前的文本):(\w+\.)*匹配一些由.结束的文字的零次或多次重复出现,\w+匹配比不可少的文本。接下来,@匹配字符本身,(\w+\.)+匹配至少一个以.结束的字符串,[A-Za-z]+匹配顶级域名。


R5匹配URL地址


1

https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)?

解析:https?://匹配http://或https://  (?使得字符s是可选的)。[-\w.]+匹配主机名。(:\d+)?匹配一个可选的端口号。(/([\w/_.]*)?)?负责匹配一个文件路径。


 R6匹配国内手机号码


1

(13|14|15|17|18)[0-9]{9}

解析:国内手机号码开头两位数字一般是固定的几位,接下来就是9个数字。

 R7匹配国内固话号码


1

\(?0\d{2,4}\)?[- ]?[2-9]\d{2,3}[- ]?\d{4}

解析:我国的固定电话号码的规律是,最开始的位一定是0,表示长途, 接着是两到四位数字组成的区号,然后是7到8位的电话号码,其中首位不为1.习惯格式有:029 8845 7890,029-88457890,(029) 88457890,029-8845-7890等。

 R8匹配中国邮政编码


1

\d(9|[0-7])\d{4}

解析:我国的邮政编码规则是,前两位表示省、市、自治区,第三位代表邮区,第四位表示县、市,最后两位表示投递邮局。共六位数字,其中第二位不为8(港澳前两位为99,其余省市为0-7)。

 R9匹配IP地址


1

\b(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\b

解析: IP地址由4个字节构成(取值范围是0~255)IP地址通常被写成4组以.字符隔开的整数,每个整数由1~3位数字构成。正则表达式首尾的\b用来匹配单词的边界,接下来由4个子表达式构成(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.):其中(\d{1,2})匹配任意一位或者两位数字;(1\d{2})匹配以1开头的任意三位数字;(2[0-4]\d)匹配整数200~249;(25[0-5])匹配整数250~255.这几个子表达式通过|操作符结合为一个更大的子表达式。随后的\.用来匹配.字符,它与前4个子表示构成的大子表达式再次构成更大的子表达式,{3}表明重复3次。因为第四个字节是没有.结尾的,所以最后把前面的四个小的子表达式组成的大表达式重复一次即可。


R10匹配中华人民共和国居民省份证号码



1

^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$

解析:身份证号码前6位为地区号码,接着四位为出身年,接着两位为月份,后面是出身日期,最后面是4位计算出来的标识码,需要注意的是这四位中最后一位有可能是字母X.

R11匹配HTML注释


1

<!--(.*?)-->

R12匹配十六进制颜色


1

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

后续随时跟新。。。。。。。。。。

来自为知笔记(Wiz)

时间: 2024-10-26 12:50:20

常用正则表达式—想说爱你不容易的相关文章

JavaScript常用正则表达式与应用(一)

JavaScript的String类和RegExp对象类都定义了相关方法使用正则表达式进行模式匹配,本文将以连载方式介绍JavaScript常用正则表达式与相关应用,欢迎交流 本节是连载一,首先介绍JavaScript语言常用的正则表达式,如何应用将在后几篇介绍. 所有案例将采用在线正则表达式验证工具RegExr进行测试,地址是:http://regexr.com/v1/,本节测试截图均来自该网站. 1.匹配字符串字面值: 正则表达式字面值包含在一对正斜杠内,如:var parttern=/P/

[python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pythonpython爬虫正则表达式html知识总结 2016-04-07 06:13 3615人阅读 评论(4) 收藏 举报  分类: Python爬虫(23)  Python基础知识(17)  版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ 这篇文章主要是介绍Pytho

JS 常用正则表达式备忘录

JS 常用正则表达式备忘录 匹配正则 使用 .test() 方法 let testString = "My test string";let testRegex = /string/;testRegex.test(testString); 匹配多个模式 使用操作符号 | const regex = /yes|no|maybe/; 忽略大小写 使用i标志表示忽略大小写 const caseInsensitiveRegex = /ignore case/i;const testString

C#常用正则表达式回顾

项目中有些时候需要用到正则表达式,但是自己对正则表达式不熟悉,每次学习完,过一段时间(长时间)不用,就又忘了,每次需要用到的时候都需要百度下,比较麻烦,这里把C#中经常用到的正则表达式做下总结. 正则表达式常用的环境 爬虫.网站数据验证.日志分析.字符串替换.获取子字符串.文本处理.字符串处理等 正则基础 1. []方括号表示匹配可以匹配方括号中的任意点单个字符,方括号只允许匹配单个字符.2. | 或表示两项之间的一个选择,它不能和方括号使用,只能和小括号使用.3. ()小括号表示一个子表达式的

EditPlus常用正则表达式

正则表达式(Regular Expression,在代码中常简写为regex.regexp或RE)是计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本.许多程序设计语言都支持利用正则表达式进行字符串操作.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 正则表达式是一个查询的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以扩展查找字符串的能力,正则表达式

java常用正则表达式

java常用正则表达式 1.^\d+$ //匹配非负整数(正整数 + 0) 2.^[0-9]*[1-9][0-9]*$ //匹配正整数 3.^((-\d+) ?(0+))$ //匹配非正整数(负整数 + 0) 4.^-[0-9]*[1-9][0-9]*$ //匹配负整数 5.^-?\d+$ //匹配整数 6.^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0) 7.^(([0-9]+\.[0-9]*[1-9][0-9]*) ?([0-9]*[1-9][0-9]*\.[0-9]+)

160224、常用正则表达式

常用正则表达式邮箱正则表达式 用户名正则表达式 路径正则表达式 ip地址正则表达式 密码正则表达式 特定数字正则表达式........正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需.用户名:/^[a-z0-9_-]{3,16}$/密码:/^[a-z0-9_-]{6,18}$/十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/电子邮箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}

常用正则表达式类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace Linus.Fin.Public.StringLib { public class RegularExp { #region 常用正则表达式枚举类 public class RegExpPattern { /// <summary>

linux常用正则表达式

一 正则表达式:   正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式. 该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为, 正则表示式通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.grep.find.awk.