- 浏览: 410297 次
- 性别:
- 来自: 长春
-
文章分类
最新评论
-
milkyTea_:
...
学习:二维码、QR码、J4L-QRCode、java -
xunke515:
请问如何更换其他用户,注销了从新登录的时候选择么?
Hadoop启动时出现Unrecognized option: -jvm 和 Could not create the Java virtual machine -
_copythat:
学习:二维码、QR码、J4L-QRCode、java -
小fi(FD):
楼主,你好,关于你发表的《基于动态表单的Java不确定字段数报 ...
基于动态表单的Java不确定字段数报表项目实现 -
rmn190:
受用了。多谢分享!
SD2见闻--参加PPT制作秘笈沙龙
http://www.xiaorui.net/post/29.html 想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可以理解的表达方式.来和大家分享学习经验. 开篇,还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明 "^The": 开头一定要有"The"字符串; 那么, 你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边 接着,说说 '*', '+',和 '?', 他们用来表示一个字符可以出现的次数或者顺序. 他们分别表示: "ab*": 和ab{0,}同义,匹配以a开头,后面可以接0个或者N个b组成的字符串("a", "ab", "abbb", 等); 要点, '*', '+',和 '?'只管它前面那个字符. 你也可以在大括号里面限制字符出现的个数,比如 "ab{2}": 要求a后面一定要跟两个b(一个也不能少)("abb"); 现在我们把一定几个字符放到小括号里,比如: 还有一个字符 '│', 相当于OR 操作: "hi│hello": 匹配含有"hi" 或者 "hello" 的 字符串; 一个点('.')可以代表所有的单一字符,不包括"\n" 如果,要匹配包括"\n"在内的所有单个字符,怎么办? "a.[0-9]": 一个a加一个字符再加一个0到9的数字 中括号括住的内容只匹配一个单一的字符 "[ab]": 匹配单个的 a 或者 b ( 和 "a│b" 一样); 你也可以把你不想要得字符列在中括号里,你只需要在总括号里面使用'^' 作为开头 "%[^a-zA-Z]%" 匹配含有两个百分号里面有一个非字母的字符串. 要点:^用在中括号开头的时候,就表示排除括号里的字符 为了PHP能够解释,你必须在这些字符面前后加'',并且将一些字符转义. 不要忘记在中括号里面的字符是这条规路的例外—在中括号里面, 所有的特殊字符,包括(''), 都将失去他们的特殊性质 "[*\+?{}.]"匹配含有这些字符的字符串. 还有,正如regx的手册告诉我们: "如果列表里含有 ']', 最好把它作为列表里的第一个字符(可能跟在'^'后面). 如果含有'-', 最好把它放在最前面或者最后面, or 或者一个范围的第二个结束点[a-d-0-9]中间的‘-’将有效. 看了上面的例子,你对{n,m}应该理解了吧.要注意的是,n和m都不能为负整数,而且n总是小于m. 这样,才能 最少匹配n次且最多匹配m次. 如"p{1,5}"将匹配 "pvpppppp"中的前五个p 下面说说以\开头的 \b 书上说他是用来匹配一个单词边界,就是...比如've\b',可以匹配love里的ve而不匹配very里有ve \B 正好和上面的\b相反.例子我就不举了 好,我们来做个应用: 如何构建一个模式来匹配 货币数量 的输入 构建一个匹配模式去检查输入的信息是否为一个表示money的数字。我们认为一个表示money的数量有四种方式: "10000.00" 和 "10,000.00",或者没有小数部分, "10000" and "10,000". 现在让我们开始构建这个匹配模式: ^[1-9][0-9]*$ 这是所变量必须以非0的数字开头.但这也意味着 单一的 "0" 也不能通过测试. 以下是解决的方法: "只有0和不以0开头的数字与之匹配",我们也可以允许一个负号在数字之前: 这就是: "0 或者 一个以0开头 且可能 有一个负号在前面的数字." 好了,现在让我们别那么严谨,允许以0开头.现在让我们放弃负号 , 因为我们在表示钱币的时候并不需要用到. 我们现在指定 模式 用来匹配小数部分: 这暗示匹配的字符串必须最少以一个阿拉伯数字开头. 但是注意,在上面模式中 "10." 是不匹配的, 只有 "10" 和 "10.2" 才可以. (你知道为什么吗) ^[0-9]+(\.[0-9]{2})?$ 我们上面指定小数点后面必须有两位小数.如果你认为这样太苛刻,你可以改成: 这将允许小数点后面有一到两个字符. 现在我们加上用来增加可读性的逗号(每隔三位), 我们可以这样表示: 不要忘记 '+' 可以被 '*' 替代 如果你想允许空白字符串被输入话 (为什么?). 也不要忘记反斜杆 ’\’ 在php字符串中可能会出现错误 (很普遍的错误). 现在,我们已经可以确认字符串了, 我们现在把所有逗号都去掉 str_replace(",", "", $money) 然后在把类型看成 double然后我们就可以通过他做数学计算了. 再来一个: 构造检查email的正则表达式 在一个完整的email地址中有三个部分: 现在, 用户名的开始和结束都不能是句点. 服务器也是这样. 还有你不能有两个连续的句点他们之间至少存在一个字符,好现在我们来看一下怎么为用户名写一个匹配模式: ^[_a-zA-Z0-9-]+$ 现在还不能允许句号的存在. 我们把它加上: 上面的意思就是说: "以至少一个规范字符(除了.)开头,后面跟着0个或者多个以点开始的字符串." 简单化一点, 我们可以用 eregi()取代 ereg().eregi()对大小写不敏感, 我们就不需要指定两个范围 "a-z" 和 "A-Z" – 只需要指定一个就可以了: 后面的服务器名字也是一样,但要去掉下划线: 好. 现在只需要用”@”把两部分连接: 这就是完整的email认证匹配模式了,只需要调用 正则表达式的其他用法 提取字符串 高级的代换 最后,我把另一串检查EMAIL的正则表达式让看文章的你来分析一下. 更多在太平洋电脑网搜索,http://ks.pconline.com.cn/?q=正则表达式
"of despair$": 结尾一定要有"of despair" 的字符串;
"^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配
"notice": 匹配包含notice的字符串
"zero or more"相当于{0,},
"one or more"相当于{1,},
"zero or one."相当于{0,1}, 这里是一些例子:
"ab+": 和ab{1,}同义,同上条一样,但最少要有一个b存在 ("ab", "abbb", 等.);
"ab?":和ab{0,1}同义,可以没有或者只有一个b;
"a?b+$": 匹配以一个或者0个a再加上一个以上的b结尾的字符串.
"ab{2,}": 要求a后面一定要有两个或者两个以上b(如"abb", "abbbb", 等.);
"ab{3,5}": 要求a后面可以有2-5个b("abbb", "abbbb", or "abbbbb").
"a(bc)*": 匹配 a 后面跟0个或者一个"bc";
"a(bc){1,5}": 一个到5个 "bc."
"(b│cd)ef": 匹配含有 "bef" 或者 "cdef"的字符串;
"(a│b)*c": 匹配含有这样多个(包括0个)a或b,后面跟一个c 的字符串;
对了,用'[\n.]'这种模式.
"^.{3}$": 三个任意字符结尾 .
"[a-d]": 匹配'a' 到'd'的单个字符 (和"a│b│c│d" 还有 "[abcd]"效果一样); 一般我们都用[a-zA-Z]来指定字符为一个大小写英文
"^[a-zA-Z]": 匹配以大小写字母开头的字符串
"[0-9]%": 匹配含有 形如 x% 的字符串
",[a-zA-Z0-9]$": 匹配以逗号再加一个数字或字母结尾的字符串
^(0│[1-9][0-9]*)$
^(0│-?[1-9][0-9]*)$
^[0-9]+(\.[0-9]+)?$
^[0-9]+(\.[0-9]{1,2})?$
^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$
1. 用户名 (在 '@' 左边的一切),
2.'@',
3. 服务器名(就是剩下那部分).
用户名可以含有大小写字母阿拉伯数字,句号 ('.'), 减号('-'), and 下划线 ('_'). 服务器名字也是符合这个规则,当然下划线除外.
^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$
^[_a-z0-9-]+(\.[_a-z0-9-]+)*$
^[a-z0-9-]+(\.[a-z0-9-]+)*$
^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$
eregi(‘^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$ ’,$eamil)
就可以得到是否为email了
ereg() and eregi() 有一个特性是允许用户通过正则表达式去提取字符串的一部分,比如说,我们想从 path/URL 提取文件名 – 下面的代码就是你需要:
ereg("([^\\/]*)$", $pathOrUrl, $regs);
echo $regs[1];
ereg_replace() 和 eregi_replace()也是非常有用的: 假如我们想把所有的间隔负号都替换成逗号:
ereg_replace("[ \n\r\t]+", ",", trim($str));
"^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$"
如果能方便的读懂,那这篇文章的目的就达到了.
发表评论
-
ChromeFireFox等浏览器的Java插件安装说明
2014-07-25 09:38 897Java插件安装说明 正常情况浏览器自动检测提示安装插件 ... -
解决tomcat默认45s启动超时的问题
2013-02-01 00:25 1166进入你的工作空间的这个目次下 E: ... -
推荐一款开源的兼容html5的视频音频播放插件——JW Player
2012-09-23 09:58 1541http://www.longtailvideo.com/pl ... -
FB4.5
2011-07-30 20:27 9454.5和4有点不一样,貌似在修改Hosts文件之前输入序列 ... -
Sliding into WebDAV(slide,Webdav的实现)
2011-05-12 13:00 2197最近在做WebDav,感觉这 ... -
基于WEBDAV的在线编辑器
2011-05-12 12:44 2497以前如果用户需要编辑服务器上的文档,首先需要通过ftp下载到本 ... -
WebDAV有哪些优点&WebDAV配置
2011-05-10 23:01 184215.2 WebDAV有哪些优点高效性:相对于即时聊天, ... -
浏览器的加载与页面性能优化
2011-03-02 22:24 1009本文将探讨浏览器渲染的loading过程,主要有2个目 ... -
50个Web设计师超便利的工具
2010-10-13 21:41 1019作为一个 Web 设计师并不容易,不仅考虑设计与架构,还要 ... -
什么是全球网络的主色调?
2010-09-19 22:30 1081COLOURlovers不久前对社交网络的主色调进行了调查 ... -
国外优秀免费空间不完全名单
2010-07-29 23:16 12721. 全能 PHP/MySQL 空间最 ... -
Sf.net(sourceforge.net)稳定免费空间支持php,mysql数据库,绑定域名
2010-07-26 09:17 3002Sf.net(sourceforge.net)稳定 ... -
sf.net/mysql/ssh/sftp稳定老免费空间
2010-07-26 09:17 1286sourceforge.net 作为世界上最大的开源托管网站 ... -
x5s 发布-自动化的XSS安全性辅助测试工具
2010-07-19 14:09 1583x5s是Fiddler的一个插件 ,旨在帮助渗透测试人员发 ... -
xss 安全测试
2010-07-19 14:07 996测试用例:还是挺管用 ... -
大型网站架构演变和知识体系【架构演变第十步:进入大型分布式应用时代和廉价服务器群梦想时代】
2010-07-13 10:32 1035架构演变第十步:进入大型分布式应用时代和廉价服务器群梦想时代 ... -
大型网站架构演变和知识体系【 架构演变第九步:数据读写分离和廉价存储方案】
2010-07-13 10:30 1141架构演变第九步:数 ... -
大型网站架构演变和知识体系【架构演变第八步:增加更多的webserver】
2010-07-13 10:29 1027架构演变第八步:增加更多的webserver 在做完分库分表 ... -
大型网站架构演变和知识体系【架构演变第七步:分表、DAL和分布式缓存】
2010-07-13 10:27 1279架构演变第七步:分表 ... -
大型网站架构演变和知识体系【架构演变第六步:分库】
2010-07-13 10:26 966架构演变第六步:分库 享受了一段时间的系统访问量高速增长的幸 ...
相关推荐
正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换符合特定模式的文本。通过使用正则表达式,你...通过半小时的教程,读者可以初步了解并开始使用正则表达式,但要想精通,还需要不断实践和探索。
在"半小时轻松学会使用正则表达式,从此不再愁"的学习资源中,你将掌握正则表达式的精髓,提升你的文本处理技能。 1. **基础概念**: - **元字符**:如`.`代表任意字符,`\d`代表数字,`\s`代表空白字符等。 - **...
明仔PHP精品教程全集内容包含:明仔AJAX教程一看就会,明仔CSS+DIV一分钟学会,明仔PHP+SMARTY留言本(全注释版本),明仔PHP翻译,明仔万能换CSS样式,明仔半小时精通正则表达式,明仔十天学会SMARTY精选教程。
关最新教程明仔PHP精品教程全集内容包含:明仔AJAX教程一看就会,明仔CSS DIV一分钟学会,明仔PHP SMARTY留言本(全注释版本),明仔PHP翻译,明仔万能换CSS样式,明仔半小时精通正则表达式,明仔十天学会SMARTY精选...
以下是常见的C++笔试面试题及其核心知识点解析,帮助您系统复习
计算机短期培训教案.pdf
计算机二级Access笔试题库.pdf
下是一份关于C++毕业答辩的心得总结,内容涵盖技术准备、答辩技巧和注意事项,供参考
内容概要:本文档详细介绍了英特尔为苹果公司构建的基于智能处理单元(IPU)的Cassandra集群的技术验证(PoC)。主要内容涵盖IPU存储用例、已建存储PoC、MEV到MMG400的过渡、苹果构建IPU-Cassandra集群的动机以及PoC开发进展。文档还探讨了硬件配置、软件环境设置、性能调优措施及其成果,特别是针对延迟和吞吐量的优化。此外,文档展示了六节点Cassandra集群的具体架构和测试结果,强调了成本和复杂性的降低。 适合人群:对分布式数据库系统、NoSQL数据库、IPU技术感兴趣的IT专业人员和技术管理人员。 使用场景及目标:适用于希望了解如何利用IPU提升Cassandra集群性能的企业技术人员。主要目标是展示如何通过IPU减少服务器部署的成本和功耗,同时提高数据处理效率。 其他说明:文档中涉及的内容属于机密级别,仅供特定授权人员查阅。文中提到的技术细节和测试结果对于评估IPU在大规模数据中心的应用潜力至关重要。
计算机二级考试C语言题.pdf
计算机发展史.pdf
计算机仿真技术系统的分析方法.pdf
yolo编程相关资源,python编程与YOLO算法组成的坐姿检测系统,功能介绍: 一:实时检测学生错误坐姿人数 二:通过前端阿里云平台显示上传数据,实现数据可视化
办公室网安全监控uptime-kuma,docker镜像离线压缩包
计算机课程设计-网络编程项目源码.zip
将该dll包放入项目并引用,可以操作打印机
杰奇2.3内核淡绿唯美小说网站源码 PC+手机版 自动采集 全站伪静态,送10.1版本关关采集器
计算机辅助教学.pdf
内容概要:本文详细介绍了如何利用天文相机和其他相关硬件设备搭建一套高画质、高帧率的流星监控系统,以及针对红色精灵闪电这一特殊自然现象的捕捉方法。文中不仅涵盖了硬件的选择标准如CMOS靶面尺寸、量子效率等重要参数,还提供了基于Python和OpenCV实现的基本监控代码示例,包括亮度突变检测、运动检测算法等关键技术点。此外,对于安装位置的选择、供电方式、成本控制等方面也有具体的指导建议。 适用人群:对天文摄影感兴趣的爱好者,尤其是希望捕捉流星和红色精灵闪电等瞬时天文现象的专业人士或业余玩家。 使用场景及目标:适用于希望搭建个人天文观测站,用于科学研究或个人兴趣爱好的场景。目标是能够稳定可靠地捕捉到流星和红色精灵闪电等难以捉摸的天文现象,为研究提供高质量的数据资料。 其他说明:文中提到的一些技术和方法虽然较为复杂,但对于有一定编程基础和技术动手能力的人来说是非常实用的参考资料。同时,文中提供的省钱技巧也为预算有限的用户提供了一些有价值的建议。