经典正则

标注:此文转自http://blog.csdn.net/21aspnet/article/details/1537016,向前辈致敬

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

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

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

String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;}

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

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

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

String.prototype.trim = function() {     return this.replace(/(^/s*)|(/s*$)/g, ""); }

利用正则表达式分解和转换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- ./?%&=]*)?

利用正则表达式去除字串中重复的字符的算法程序:[注:此程序不正确,原因见红色字体]

var s="abacabefgeeii" var s1=s.replace(/(.).*/1/g,"$1") var re=new RegExp("["+s1+"]","g") var s2=s.replace(re,"") alert(s1+s2)  //结果为:abcefgi

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

如果var s = "abacabefggeeii" 结果就不对了,结果为:abeicfgg 正则表达式的能力有限

我原来在CSDN上发贴寻求一个表达式来实现去除重复字符的方法,最终没有找到,这是我能想到的最简单的实现方法。思路是使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,两者串连。这个方法对于字符顺序有要求的字符串可能不适用。

得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1

s="http://www.9499.net/page1.htm" s=s.replace(/(.*//){0,}([^/.]+).*/ig,"$2") alert(s)

利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,‘‘)" onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^/u4E00-/u9FA5]/g,‘‘))"

用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,‘‘)" onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^/uFF00-/uFFFF]/g,‘‘))"

用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^/d]/g,‘‘) "onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^/d]/g,‘‘))"

用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[/W]/g,‘‘) "onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^/d]/g,‘‘))"

时间: 2024-11-14 01:50:03

经典正则的相关文章

sed正则经典案例(二)

sed正则经典案例(二)    ###修改登记信息格式 已知文本内容如下: [[email protected] oldboy]# cat 2.txt  张三--1995/04/12--186-1233-4324--5004132131231231231 李四--1993/05/20--175-4323-2343--4423432423413132133 王五--1989/12/21--150-3123-3123--4324234121231231242 请替换成如下结果: 张三 1995041

sed正则经典例题

**题目:已知目标文件如下** <html> <title>First Web</title> <body> h1Helloh1 h2Helloh2 h3Helloh3 </body> </html> 请使文件中的内容输出为: <h1>Hello</h1> <h2>Hello</h2> <h3>Hello</h3> 创建环境 [[email protected] 

sed正则经典案例(四)

###修改日期格式,已知文件内容如下: 原始数据:文件date.txt 21/May/2017:09:29:24 +0800 22/May/2017:09:30:26 +0800 23/May/2017:09:31:56 +0800 24/May/2017:09:34:12 +0800 25/May/2017:09:35:23 +0800 26/May/2017:09:23:34 +0800 27/May/2017:09:22:21 +0800 28/May/2017:09:45:22 +080

PHP配置文件经典漏洞

phithon师父在小蜜圈里放了一个经典的配置文件写入问题漏洞. <?phpif(!isset($_GET['option'])) die();$str = addslashes($_GET['option']);$file = file_get_contents('./config.php');$file = preg_replace('|\$option=\'.*\';|', "\$option='$str';", $file);file_put_contents('./co

Linux经典书籍推荐

入门篇 <LINUX权威指南>书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux .另外比较热门的也可以看看<鸟哥的私房菜>等书,偏管理类的书.如果想做server方向的可以找来看看. 驱动 篇 <LINUX设备驱动程序 >就是网上说的“LDD”,经典之作,必备书籍.国产经典<Linux驱动详细解>也是一本非常不错的书,很实用,书中源代码 分析比较多,基于2440的,对linux外围驱动有很全面的讲解 内核篇 浙 江大学的

linux c正则

c 正则 -------------------------------------------------- 标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库. 编译正则表达式 ----------------------- 为了提高效率,在将一个字符串与正则表达式进行比较之前,首先要用regcomp()

python爬虫从入门到放弃(五)之 正则的基本使用

什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符",这个"规则字符" 来表达对字符的一种过滤逻辑. 正则并不是python独有的,其他语言也都有正则python中的正则,封装了re模块 python正则的详细讲解 常用的匹配模式 \w 匹配字母数字及下划线 \W 匹配f非字母数字下划线 \s 匹配任意空白字符,等价于[\t\n\r\f] \S 匹配任意非空字符 \d 匹配任意数字 \D

关于C#判断是否是数字的正则式

有话要说 今天我同事突然让我帮他看个问题,他说想不通为什么数据库中会有不合法的内容,我都已经用正则过滤了,并且在本地调通了的! 我问他是不是你正则有问题,他说没问题啊,前端和后端的正则是一样的,前端我测了的确是可以过滤的!我帮他查看了正则式的确都是一样的,并且在生产环境中的确也是有过滤作用的!但的确数据库中有不合法的内容(至于是什么内容,咱们往下看 ^-^) 判断目标内容是否为数字 我们来说说,判断是否为数字的正则式,或者说判断手机号码的合法性,下面直接给出网上的一段代码(还是有很多同学都用到了

正则表达(五)——引擎、回溯

这一章的内容是有关于正则表达式的匹配原理中一个很重要的内容:回溯.前面的内容基本已经包含了正则表达式的所有常用的内容(针对于NFA引擎).这一章的目的是想在基础上更深入一点点,写一点关于匹配原理的内容.所以这章的内容会有些稍难.在讲回溯之前,我们先来看看正则表达式的引擎分类. 正则表达式引擎 在汽车中,引擎的作用是驱动汽车前进的.而在正则表达式中,引擎的作用同样是驱动正则表达式前进的.不同的引擎对相同的表达式能输出同样的结果,但是它们驱动的过程不同,效率也不同,不同引擎支持的功能也不同.至于为什