时间:2014-01-29 来源:

ruby正则表达式教程

我们再看一个更有趣的程序.这次我们来测试一个字符串是否和一个由简明模式(concise pattern)编码产生的描述相匹配.

在这些模式(pattern)里web切图报价,一些字符或字符组合都有独特的意义,web切图报价包括: 

复制代码 代码如下:

[]  范围描述符 (比如,psd转html[a - z] 表示在a 到 z 范围内的一个字母)   

\w  字母或数字;相当于 [0-9A-Za-z]  

\W  非字母,html切图制作n}  前面元素最少出现m次,wap前端外包最多出现n次  

?  前面元素最多出现1次;相当于 {0,1}  

|  与前面或后面的表达式匹配  

()  群( grouping)   


那些模式中共同使用的古怪词汇叫做正则表达式.就象Perl一样,web前端制作Ruby也用前斜杠(而不是双引号)将它们括起来.如果你以前从未使用过正则表达式承接网页制作,也许它们看起来除了规则(regular)什么都不是,div前端切图但花上一点儿时间了解它们是明智的.当你需要对字符串进行模式匹配web切图报价,查找或其它操作时,web切图报价它的高效的表达能力能治好你的头痛(并节约很多行代码).

举个例子符合w3c标准,设想我们想要测试一个字符串是否符合这样的描述信息"由小写f开头,符合w3c标准跟一个大写字母网页外包接活,并可能跟许多非小写字母在后面."如果你是一个老练的C程序员,jpg或psd转html大概你的头脑里已经装满几十行程序了web前端制作,对不对?承认吧,web前端制作你难以控制住自己.在Ruby里承接网页制作, this: <0xfc0004>." 
  true   


虽然web切图报价,初看起来正则表达式挺让人头痛的,网站div+css但你很快会因能够如此高效地表达出你心中的意思而感到满足.

下面是一个可以帮助你实验正则表达式的小程序符合w3c标准,然后在命令行里输入'ruby regx.rb'运行.

复制代码 代码如下:

# Requires an ANSI terminal! 
st = "\033[7m" 
en = "\033[m" 
while TRUE   
    print "str> "   
    STDOUT.flush   
    str = gets   
    break if not str   
    str.chop!   
    print "pat> "   
    STDOUT.flush   
    re = gets   
    break if not re   
    re.chop!   
    str.gsub! re, "\n" 
end 
print "\n"   


这个小程序要求输入两次web前端制作,一次字符串,div+css制作一次正则表达式.输入的字符串由正则表达式检验承接网页制作,然后用反视高亮度显示所有匹配部分.先别管细节,承接网页制作等会儿就有代码分析.

复制代码 代码如下:

str> foobar 
pat> ^fo+ 
foobar 
~~~   

上面红色部分将在程序输入中以反视表示出.下面的"~~~"行是为了方便那些使用基于字符浏览器的人.

我们再试几个输入:

str> abc012dbcd555
pat> \d
abc012dbcd555 


如果让你感到惊讶web切图报价,看看本页开头部分的那个表格: \d与字母d无关,web切图报价而是对应于单个数字.

如果有不止一种方法能匹配模式会怎样呢?

str> foozboozer
pat> f.*z
foozboozer
~~~~~~~~  


之所以foozbooz被匹配而不只是fooz,是因为一个正则表达符尽可能匹配最长的子串.

下面是一个将冒号分隔的数字时间段从字符串中隔离出来的模式匹配.

str> Wed Feb  7 08:58:04 JST 1996
pat> [0-9]+:[0-9]+(:[0-9]+)?
Wed Feb  7 08:58:04 JST 1996 


"=~"是一个用于匹配正则表达式的匹配(matching)运算符;它会返回在字符串里找到的匹配的位置,html切图制作或者返回 nil 表示模式无法匹配.

ruby> "abcdef" =~ /d/
   3
ruby> "aaaaaa" =~ /d/
   nil  
点击次数:4049
作者:

其它web前端开发资讯

CI框架学习之六(数据库查询缓存优化) 【架构设计】2018年01月07日BZOJ3288Mato矩阵线性筛 【编程语言】2018年01月07日关于硕士毕业论文盲审后修改稿的感悟【综合】2018年01月07日hdu2825WirelessPassword【AC自动机+状压dp】2018年01月07日百度去年净利润17.38亿同比增0.6%2018年01月07日iOS开发百问(9)【系统运维】2018年01月07日Win10开始菜单打不开 【编程语言】2018年01月07日一个人越懒,明天要做的事越多,2018年01月07日CentOS安装、使用VNC【Web前端】2018年01月07日Apacheshiro(1)-入门【Web前端】2018年01月07日现代机房建设之服务器负载密度2018年01月07日中国拟购日本动漫版权打击盗版问题2018年01月07日传苹果两周后发布神秘新硬件产品2018年01月07日Java垃圾收集器的算法 【编程语言】2018年01月07日GoogleGuice之AOP 【编程语言】2018年01月07日国产操作系统小论 【移动开发】2018年01月07日
web前端行业资讯
Web new NewsList
谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日苹果经典电脑Lisa源代码修复完成将于2018年开源 ,,2017年12月28日腾讯浏览指数发布年终榜单2017年人们都关注哪些AI话题? ,,2017年12月28日除了发现开普勒90,NASA还靠AI做了什么? ,,2017年12月28日柯洁宣布:明年4月,将再次与围棋AI交锋 ,,2017年12月28日百度无人车美国首秀CES将发布Apollo2.0 ,,2017年12月28日这四种技术发展趋势将在2018年改变世界 ,,2017年12月28日2017:谷歌DeepMind团队的年度回顾 ,,2017年12月28日封杀这个公式,AI智商将为零 ,,2017年12月28日微软AI高管:要让所有人、所有机构都用上人工智能 ,,2017年12月28日为什么Linux桌面年一直未到来 ,,2017年12月28日AppleLisa操作系统将开源 ,,2017年12月28日2018年9大技术趋势预测 ,,2017年12月28日谷歌研究院发布NIMA:能评价图像有多美,还能让图像变得更美 ,,2017年12月28日苹果为2019年iPhone开发大容量电池新技术 ,,2017年12月28日谷歌发布Tacotron2:能更简单地训练AI学习演讲 ,,2017年12月21日TensorFlow漏洞爆发背后:关于AI安全我们的傻与天真 ,,2017年12月21日Android端Edge浏览器新版发布:常规性能优化和BUG修复 ,,2017年12月21日三星开发出全球最小的DRAM芯片技术领先优势扩大 ,,2017年12月21日腾讯绝艺AI下一步将学习AlphaGozero自对弈训练 ,,2017年12月21日Facebook社交VR应用Spaces扩大覆盖面:入驻HTCVive ,,2017年12月21日设计图曝光:三星双屏折叠手机原来是这样的 ,,2017年12月21日微信支付和支付宝已成为世界移动支付的"老师" ,,2017年12月21日新专利表明FaceID未来有望装备在iPad、MacBook和iMac等设备 ,,2017年12月21日首批九个建议加入EE4J的项目 ,,2017年12月21日这就是SurfacePhone?微软可折叠手机概念图曝光 ,,2017年12月21日application对象统计所有用户对某网页的访问次数2014年01月29日UnicodeDecodeError:'ascii'codeccan'tdecodebyte0xe5inposition0:ordinalnotinrange(128)【研发管理】2015年07月24日Gradle教程说明用户指南第8章依赖管理基础 【编程语言】2014年11月26日ASP.NET缓存介绍2014年01月29日Qt学习入门【综合】2015年02月13日ZOJ3471状态压缩DP【编程语言】2015年04月13日简单多图片上传jquery+java代码 【综合】2015年08月14日热门博文推荐 【编程语言】2015年07月09日unity3d游戏开发之游戏贴图、模型基本规范(Q&A)【编程语言】2015年01月30日EPP3php项目文件打开中文乱码完美解决方案 【编程语言】2014年12月03日hdu1102ConstructingRoads2015年08月14日installoracle11goncentos6.5【架构设计】2015年05月11日一个市值110亿美元的独角兽是如何计算用户流失率的 【编程语言】2015年06月17日学习笔记二十九:IO流(一)【编程语言】2015年01月12日数字图像加噪 【综合】2015年06月05日Android--Activity接收另一个Activity返回的数据 【移动开发】2015年04月17日阿里无人超市很黑科技,但要开到家门口还略早 ,,2017年07月06日泛函编程(33)-泛函IO:FreeFunctor-Coyoneda 【综合】2015年07月14日Eclipse中的Web项目自动部署到Tomcat【综合】2015年07月13日C#.NET发送邮件的实例代码2014年01月29日HDoj-1059-Dividing-母函数 【编程语言】2014年12月30日在程序中使用Cookie集合(定义新建删除)及案例讲解2014年01月29日Socket编程POST批量发帖 【编程语言】2015年04月24日poj1995RaisingModuloNumbers【快速幂】【编程语言】2015年08月26日基于jquery的让页面控件不可用的实现代码2014年01月29日C语言编程入门——结构体(下) 【综合】2015年08月07日一种导致cvDestroyWindow产生内存泄露的用法【移动开发】2015年06月26日SqlServer更改复制代理配置文件参数【综合】2015年04月17日PhpCms系统设置:稿件状态管理2014年01月28日JEval使用实例 【编程语言】2015年07月02日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)