好久没写博客,这次写博客主要是针对所学的正则表达式做一个整理.因为用时总是不大把握,每次都得百度,因此将常用的一些正则以及一些比较难记混淆 的字符纪录于此,本篇并不是正则的使用教程,只是一些常用的字符及常用的正则,权当一个工具书使用.当然如果能够解决一些朋友的燃眉之需,那应该是一件非 常令人高兴的事了.本文内容大都摘自其他博客,如有侵权,请指明更正.(HOHO,排版排得好累...)

常用的元字符有
. 匹配除换行符以外的任意字符
\w  匹配字母或数字或下划线或汉字
\s  匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
常用的限定符
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
常用的反义字符
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
贪婪与懒惰限定符
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
使用小括号()时的一些特殊语法
(exp) 匹配exp,并捕获文本到自动命名的组里
(?<name>exp)  匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
(?#comment) 这种类型的组不对正则表达式的处理产生任何影响,用于提供注释让人阅读
一些不是很经常使用的字符
\a 报警字符(打印它的效果是电脑嘀一声)
\b  通常是单词分界位置,但如果在字符类里使用代表退格
\t 制表符,Tab
\r 回车
\v 竖向制表符
\f 换页符
\n 换行符
\e Escape
\0nn ASCII代码中八进制代码为nn的字符
\xnn ASCII代码中十六进制代码为nn的字符
\unnnn Unicode代码中十六进制代码为nnnn的字符
\cN ASCII控制字符。比如\cC代表Ctrl+C
\A 字符串开头(类似^,但不受处理多行选项的影响)
\Z 字符串结尾或行尾(不受处理多行选项的影响)
\z 字符串结尾(类似$,但不受处理多行选项的影响)
\G 当前搜索的开头
\p{name} Unicode中命名为name的字符类,例如\p{IsGreek}
(?>exp) 贪婪子表达式
(?<x>-<y>exp) 平衡组
(?im-nsx:exp) 在子表达式exp中改变处理选项
(?im-nsx) 为表达式后面的部分改变处理选项
(?(exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
(?(exp)yes) 同上,只是使用空表达式作为no
(?(name)yes|no) 如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
(?(name)yes) 同上,只是使用空表达式作为no

一些常用的正则表达式:

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

利用正则表达式分解和转换IP地址:

下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

function IP2V(ip)
{
 re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g  //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
 throw new Error("Not a valid IP address!")
}
}

不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下:

var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

用正则表达式限制只能输入中文:

用正则表达式限制只能输入全角字符:

用正则表达式限制只能输入数字:

用正则表达式限制只能输入数字和英文:

===========================================================================================

^\d+$  //匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$  //匹配正整数
^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$  //匹配负整数
^-?\d+$    //匹配整数
^\d+(\.\d+)?$  //匹配非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匹配非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数
^(-?\d+)(\.\d+)?$  //匹配浮点数
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url

实用正则表达式(实用篇)相关推荐

  1. 计算机启用时间 查找方式,电脑实用知识技巧 篇六:不需要第三方软件,这种方法查看系统启动时间...

    电脑实用知识技巧 篇六:不需要第三方软件,这种方法查看系统启动时间 2019-04-04 09:19:21 0点赞 0收藏 0评论 上次我们说到:开机小助手,要让我们看到开机时间,必须添加自启动项目, ...

  2. 实用正则表达式匹配和替换

    原文地址为: 实用正则表达式匹配和替换 正则表达式非常有用,查找.匹配.处理字符串.替换和转换字符串,输入输出等.而且各种语言都支持,例如.NET正则库,JDK正则包, Perl, JavaScrip ...

  3. AutoCAD实用技巧基础篇

    AutoCAD 实用技巧基础篇 课 程描述: 本教程 内容系统.全面,指导读者完成从学习基本命令,到 综合利用这些命令绘制平面图形,再到了解绘制工程图的方法.技巧及AutoCAD实际应用的全过程. 版 ...

  4. 大班运用计算机教学案例,幼儿园大班音乐教学方案实用案例5篇

    音乐作为一种转瞬即逝的时间艺术,要求幼儿保持注意力的稳定,习惯于跟随音乐的运动和变化,以便了解音乐所表现的内容和情感,形成对乐曲的整体感受.以下是小编精心收集整理的幼儿园大班音乐教学方案,下面小编就和 ...

  5. Linux疑难杂症解决方案100篇(二十)-Linux正则表达式(实用)指南

    前言 正则表达式(Regular Expression,或者Regex),能干嘛?听说很强悍,很多人用来查找字符串,或者替换某些字符串. 实际上,正则表达式有四个功能: 匹配,即查找,例如,从杂乱的一 ...

  6. 胖爷的vim实用手册 - 基础篇(打开、关闭、移动、搜索)

    在linux中,常用的编辑器,大概有2个半,vi或者vim,emacs,还有个简单的nano.有人说程序猿分为三种,一种是使用vim的,还有一 种使用emacs的,剩下的都是第三种.用现在一个时髦的比 ...

  7. Linux系统编程(18)——正则表达式实用举例

    匹配特定字符串: 只能输入长度为3的字符:"^.{3}$". 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$". 只能输入由26个大写英文字母组 ...

  8. JavaScript 正则表达式实用实战

    1. 匹配以数字结尾的: 正则:/\d+$/g; 2. 去掉空格: var str = "我 是 龙 恩"; console.log(str.replace(/\s+/g,&quo ...

  9. 实用!200篇英文论文中总结的最常见错误!

    文章The Most Common Habits from more than 200 English Papers written by Graduate Chinese Engineering S ...

最新文章

  1. 《大话设计模式》--代理模式
  2. MSScriptControl详解(可实现在C#等语言中调用JAVASCRIPT代码)
  3. npm ERR! cb.apply is not a function npm ERR! A complete log of this run can be found in: npm ERR!
  4. 使用浏览器的 Local Storage 真的安全吗?
  5. SQLSEVER 中的那些键和约束
  6. java 正则 栈溢出_关于Java正则引起的StackOverFlowError问题以及解决方案 | 学步园...
  7. easyui 图标_logo设计和图标设计有哪些不同?
  8. visual basic开发实例大全(基础卷_2021中考数学、物理、化学公式大全!建议收藏!...
  9. c fscanf 按行读取文件_每日干货丨C语言文件操作函数
  10. 404!优秀案例分享,这样的页面照样能给你小惊喜
  11. 萌豆工作室《用户许可协议》
  12. GRIB格式转换心得(转自博客:http://windforestwing.blog.163.com/blog/static/19545412007103084743804/)...
  13. python天气可视化分析报告_Python爬取天气数据及可视化分析
  14. 电信收费计费系统BI项目
  15. The Matrix
  16. 如何将CM android移植到你的设备(二)
  17. egret的eui以及exml使用
  18. JAVA:Java Swing 练习题
  19. 有关 ovirt 的分析
  20. Linux打印当前目录

热门文章

  1. NULL,,String.Empty三者在C#中的区别
  2. Ubuntu中root用户和user用户的相互切换
  3. 最全解释P2P、P2C 、O2O 、B2C、B2B、 C2C的定义
  4. mysql binlog2sql闪回数据
  5. vagrant 本地添加box 支持带版本号
  6. 使用MySQL验证Open***用户登录访问
  7. unity, List namespace
  8. 谷歌Android系统在美成宠儿
  9. mac os 升级为Mountain Lion后,eclipse找不到JRE的问题
  10. 转载:SendMessage()这个函数有很多奇妙的用途