- 浏览: 407087 次
- 性别:
- 来自: 长春
-
文章分类
最新评论
-
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 878Java插件安装说明 正常情况浏览器自动检测提示安装插件 ... -
解决tomcat默认45s启动超时的问题
2013-02-01 00:25 1145进入你的工作空间的这个目次下 E: ... -
推荐一款开源的兼容html5的视频音频播放插件——JW Player
2012-09-23 09:58 1525http://www.longtailvideo.com/pl ... -
FB4.5
2011-07-30 20:27 9344.5和4有点不一样,貌似在修改Hosts文件之前输入序列 ... -
Sliding into WebDAV(slide,Webdav的实现)
2011-05-12 13:00 2185最近在做WebDav,感觉这 ... -
基于WEBDAV的在线编辑器
2011-05-12 12:44 2485以前如果用户需要编辑服务器上的文档,首先需要通过ftp下载到本 ... -
WebDAV有哪些优点&WebDAV配置
2011-05-10 23:01 183015.2 WebDAV有哪些优点高效性:相对于即时聊天, ... -
浏览器的加载与页面性能优化
2011-03-02 22:24 995本文将探讨浏览器渲染的loading过程,主要有2个目 ... -
50个Web设计师超便利的工具
2010-10-13 21:41 1008作为一个 Web 设计师并不容易,不仅考虑设计与架构,还要 ... -
什么是全球网络的主色调?
2010-09-19 22:30 1069COLOURlovers不久前对社交网络的主色调进行了调查 ... -
国外优秀免费空间不完全名单
2010-07-29 23:16 12621. 全能 PHP/MySQL 空间最 ... -
Sf.net(sourceforge.net)稳定免费空间支持php,mysql数据库,绑定域名
2010-07-26 09:17 2990Sf.net(sourceforge.net)稳定 ... -
sf.net/mysql/ssh/sftp稳定老免费空间
2010-07-26 09:17 1268sourceforge.net 作为世界上最大的开源托管网站 ... -
x5s 发布-自动化的XSS安全性辅助测试工具
2010-07-19 14:09 1572x5s是Fiddler的一个插件 ,旨在帮助渗透测试人员发 ... -
xss 安全测试
2010-07-19 14:07 983测试用例:还是挺管用 ... -
大型网站架构演变和知识体系【架构演变第十步:进入大型分布式应用时代和廉价服务器群梦想时代】
2010-07-13 10:32 1019架构演变第十步:进入大型分布式应用时代和廉价服务器群梦想时代 ... -
大型网站架构演变和知识体系【 架构演变第九步:数据读写分离和廉价存储方案】
2010-07-13 10:30 1132架构演变第九步:数 ... -
大型网站架构演变和知识体系【架构演变第八步:增加更多的webserver】
2010-07-13 10:29 1019架构演变第八步:增加更多的webserver 在做完分库分表 ... -
大型网站架构演变和知识体系【架构演变第七步:分表、DAL和分布式缓存】
2010-07-13 10:27 1270架构演变第七步:分表 ... -
大型网站架构演变和知识体系【架构演变第六步:分库】
2010-07-13 10:26 955架构演变第六步:分库 享受了一段时间的系统访问量高速增长的幸 ...
相关推荐
正则表达式30分钟入门教程 正则表达式是指在编写处理字符串的程序或网页时,用于描述字符串规则的工具。它可以精确地描述复杂的规则,以便在文本中查找符合规则的字符串。正则表达式类似于Windows/Dos下用于文件...
例如,你可以创建一个正则表达式对象,然后使用它来测试字符串是否符合特定模式,或者从字符串中提取匹配的子串。 在实际应用中,使用正则表达式可能涉及到以下步骤: 1. 创建正则表达式:定义你要匹配的模式,例如...
正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换等操作,涉及字符串处理的各个领域。正则表达式转换工具是专门针对这一需求而设计的,它能帮助用户将输入的内容转换...
标题中的“pb 使用正则表达式源码pbregexp”指的是在PowerBuilder(简称pb)环境中,利用名为“pbregexp”的正则表达式组件来实现源代码级别的正则表达式操作。PowerBuilder是一款流行的可视化的、面向对象的软件...
正则表达式是一种强大的文本处理工具,它允许用户定义特定的字符串匹配模式,用于在文本中搜索、替换和提取特定模式的数据。在本教程中,作者通过对正则表达式的逐步引导和实例演示,旨在让初学者在30分钟内掌握正则...
正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换符合特定模式的文本。通过使用正则表达式,你...通过半小时的教程,读者可以初步了解并开始使用正则表达式,但要想精通,还需要不断实践和探索。
在实际项目中,你需要将这个头文件包含到你的源代码中,以便使用MFC提供的正则表达式功能。 总的来说,MFC的正则表达式类库提供了一个高效且易于使用的接口,使得VC++开发者能够方便地在Windows应用程序中处理复杂...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索。在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整...
非常棒的正则表达式速成教程,号称30分钟叫你学会正则表达式常用用法。我本人学了一下,感觉不赖,不过俺比较笨,30分钟的东西学了3个多小时,已经从什么都不会变成会编各种复杂的正则筛选条件了^^!这个教程是配合...
正则式,全称为“正则表达式”,是编程领域中一种强大的文本处理工具,用于匹配、...通过不断实践和学习,你可以更熟练地运用正则表达式解决实际问题,无论是数据提取、文本过滤还是验证用户输入,都将变得轻松自如。
使用这个封装好的模块,你可以避免重复编写正则表达式的验证代码,提高代码的可复用性和一致性。在压缩包中的myRegExp文件很可能是包含这个封装的源代码,你需要将其添加到你的项目中,并按照提供的文档或示例进行...
"正则表达式必知必会" 正则表达式是一种强大的文本处理工具,广泛应用于各个领域。下面是对正则表达式的详细解释: 正则表达式的用途 正则表达式主要用于处理文本,提供了两大主要功能:查找和替换。查找功能允许...
"javascript 30分钟学会正则表达式"的教程旨在帮助你快速理解和应用正则表达式,无论你是初学者还是希望巩固正则知识的开发者。 首先,我们要了解正则表达式的构成元素。基础的元素包括元字符(如.、*、+、?、^、$...
Java使用正则表达式提取XML节点内容的方法示例 Java使用正则表达式提取XML节点内容的方法示例主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作...
例如,通过正则表达式,你可以一次性替换所有符合特定格式的电话号码、邮箱地址或者日期格式。 二、正则表达式的历史和起源 正则表达式起源于20世纪50年代,由Warren McCulloch和Walter Pitts的神经网络研究,以及...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过预定义的模式来识别和操作字符串中的数据。以下是一些常见的正则表达式及其用途: 1. 匹配中文字符:`[u4e00-u9fa5]` - 这个正则...
在易语言中,正则表达式是进行文本处理、数据提取和搜索的关键工具,尤其在处理中文字符时显得尤为重要。本文将深入探讨易语言中的正则表达式匹配中文的原理、方法以及应用。 正则表达式(Regular Expression)是一...
《Delphi 2010正则表达式插件详解》 在编程世界中,正则表达式(Regular Expression)是一种强大的文本处理工具,能够帮助开发者高效地进行字符串的匹配、查找、替换等操作。在Delphi 2010这个经典的集成开发环境中...
这篇教程“半小时了解正则表达式”旨在为初学者提供一个快速入门的路径,让你能在短时间内掌握正则表达式的基本概念和常用语法。 首先,我们需要了解正则表达式的几个核心概念: 1. **元字符(Meta Characters)**...
正则表达式验证工具 V1.0 本软件主要用于检测正则表达式是否正确。 运行环境:本软件为绿色软件,无需安装,但需要Microsoft .NET Framework 4 支持,如果没有请前去下载(下载路径:...