站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Php-正则表达式应用
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>导航:</strong> [[PHP#PHP教程|上一页]] | {{template:开发语言导航}}</span> <div style="clear:both;"></div> 目前,正则表达式已经在很多[[软件]]中得到广泛的应用,包括*nix([[Linux]]、[[Unix]]等)、[[HP]]等[[操作系统]],[[PHP]]、[[C#]]、[[Java]]等开发语言,以及很多的应用软件中,都可以看到正则表达式的影子。<br> PHP一些常用的正则表达式<br> 匹配中文字符的javascript:;" target="_self">正则表达式: [\u4e00-\u9fa5] <br> 匹配双字节字符(包括汉字在内): [^\x00-\xff] <br> 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) <br> String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;} <br> 匹配空行的正则表达式: \n[\s| ]*\r <br> 匹配HTML标记的正则表达式: /<(.*)>.*<\/>|<(.*) \/>/ <br> 匹配首尾空格的正则表达式: (^\s*)|(\s*$) <br> 应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下: <br> String.prototype.trim = function() { <br> return this.replace(/(^\s*)|(\s*$)/g, ""); <br> } <br> 利用正则表达式分解和转换IP地址: <br> 下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的javascript程序: <br> function IP2V(ip) { <br> re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式 <br> if(re.test(ip)) { <br> return RegExp.*Math.pow(255,3))+RegExp.*Math.pow(255,2))+RegExp.*255+RegExp.*1 <br> } <br> else { <br> throw new Error("Not a valid IP address!") <br> } <br> } <br> 不过上面的程序如果不用正则表达式,而直接用split函数来分解可能更简单,程序如下: <br> var ip="10.100.20.168" <br> ip=ip.split(".") <br> alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1)) <br> 匹配Email地址的正则表达式: \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* <br> 匹配网址URL的正则表达式: http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? <br> 利用正则表达式去除字串中重复的字符的算法程序: <br> var s="abacabefgeeii" <br> var s1=s.replace(/(.).*/g,"") <br> var re=new RegExp("["+s1+"]","g") <br> var s2=s.replace(re,"") <br> alert(s1+s2) //结果为:abcefgi <br> 用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1 <br> s="http://www.9499.net/page1.htm" <br> s=s.replace(/(.*\/)([^\.]+).*/ig,"") <br> alert(s) <br> 利用正则表达式限制网页表单里的文本框输入内容: <br> 用正则表达式限制只能输入中文: <br> 用正则表达式限制只能输入全角字符: <br> 用正则表达式限制只能输入数字: <br> 用正则表达式限制只能输入数字和英文: <br> onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,'')) <br> '''MySql正则表达式的描述'''<br> 正则表达式(regex)是定义复杂查询的一个强有力的工具。 <br> 这里是一个简单的资料,它忽略了一些详细的信息。 <br> 正则表达式定义了一个字符串的规则。最简单的正则表达式不包含任何保留字。例如,正则表达式hello只和字符串“hello”匹配。 <br> 一般的正则表达式使用了某些特殊的结构,所以它能匹配更多的字符串。例如,正则表达式hello|word既能匹配字符串“hello”也能匹配字符串 “word”。举一个更复杂一点的例子,正则表达式b[an]*s可以匹配字符串“bananas”、“baaaaas” 、“bs”以及其他任何以b开头以s结尾的字符串,中间可以包括任意个a和任意个n的组合。 <br> 一个正则表达式中的可以使用以下保留字 <br> ^ <br> 所匹配的字符串以后面的字符串开头 <br> mysql> select "fonfo" regexp "^fo$"; -> 0(表示不匹配) <br> mysql> select "fofo" regexp "^fo"; -> 1(表示匹配) <br> $ <br> 所匹配的字符串以前面的字符串结尾 <br> mysql> select "fono" regexp "^fono$"; -> 1(表示匹配) <br> mysql> select "fono" regexp "^fo$"; -> 0(表示不匹配) <br> . <br> 匹配任何字符(包括新行) <br> mysql> select "fofo" regexp "^f.*"; -> 1(表示匹配) <br> mysql> select "fonfo" regexp "^f.*"; -> 1(表示匹配) <br> a* <br> 匹配任意多个a(包括空串) <br> mysql> select "ban" regexp "^ba*n"; -> 1(表示匹配) <br> mysql> select "baaan" regexp "^ba*n"; -> 1(表示匹配) <br> mysql> select "bn" regexp "^ba*n"; -> 1(表示匹配) <br> a+ <br> 匹配任意多个a(不包括空串) <br> mysql> select "ban" regexp "^ba+n"; -> 1(表示匹配) <br> mysql> select "bn" regexp "^ba+n"; -> 0(表示不匹配) <br> a? <br> 匹配一个或零个a <br> mysql> select "bn" regexp "^ba?n"; -> 1(表示匹配) <br> mysql> select "ban" regexp "^ba?n"; -> 1(表示匹配) <br> mysql> select "baan" regexp "^ba?n"; -> 0(表示不匹配) <br> de|abc <br> 匹配de或abc <br> mysql> select "pi" regexp "pi|apa"; -> 1(表示匹配) <br> mysql> select "axe" regexp "pi|apa"; -> 0(表示不匹配) <br> mysql> select "apa" regexp "pi|apa"; -> 1(表示匹配) <br> mysql> select "apa" regexp "^(pi|apa)$"; -> 1(表示匹配) <br> mysql> select "pi" regexp "^(pi|apa)$"; -> 1(表示匹配) <br> mysql> select "pix" regexp "^(pi|apa)$"; -> 0(表示不匹配) <br> (abc)* <br> 匹配任意多个abc(包括空串) <br> mysql> select "pi" regexp "^(pi)*$"; -> 1(表示匹配) <br> mysql> select "pip" regexp "^(pi)*$"; -> 0(表示不匹配) <br> mysql> select "pipi" regexp "^(pi)*$"; -> 1(表示匹配) <br> {1} <br> {2,3} <br> 这是一个更全面的方法,它可以实现前面好几种保留字的功能 <br> a* <br> 可以写成a{0,} <br> a+ <br> 可以写成a{1,} <br> a? <br> 可以写成a{0,1} <br> 在{}内只有一个整型参数i,表示字符只能出现i次;在{}内有一个整型参数i,后面跟一个“,”,表示字符可以出现i次或i次以上;在{}内只有一个整型参数i,后面跟一个“,”,再跟一个整型参数j,表示字符只能出现i次以上,j次以下(包括i次和j次)。其中的整型参数必须大于等于0,小于等于 re_dup_max(默认是255)。如果有两个参数,第二个必须大于等于第一个 <br> [a-dx] <br> 匹配“a”、“b”、“c”、“d”或“x” <br> [^a-dx] <br> 匹配除“a”、“b”、“c”、“d”、“x”以外的任何字符。“[”、“]”必须成对使用 <br> mysql> select "axbc" regexp "[a-dxyz]"; -> 1(表示匹配) <br> mysql> select "axbc" regexp "^[a-dxyz]$"; -> 0(表示不匹配) <br> mysql> select "axbc" regexp "^[a-dxyz]+$"; -> 1(表示匹配) <br> mysql> select "axbc" regexp "^[^a-dxyz]+$"; -> 0(表示不匹配) <br> mysql> select "gheis" regexp "^[^a-dxyz]+$"; -> 1(表示匹配) <br> mysql> select "gheisa" regexp "^[^a-dxyz]+$"; -> 0(表示不匹配) <br> [[category:PHP教程]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:开发语言导航
(
编辑
)