ruby正则表达式-创新互联
1显式的正则表达式调用
站在用户的角度思考问题,与客户深入沟通,找到兰州网站设计与兰州网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册、雅安服务器托管、企业邮箱。业务覆盖兰州地区。有两个对象,一个是模式对象,一个是匹配结果对象
re = /(\d+):(\d+)/ md = re.match("Time: 12:34am") p md, md[0], md[1], md[2], md[3], md.pre_match, md.post_match
2Perl式的正则表达式调用
这里面隐含了re对象、以及match对象
message = "Time: 12:34am" message =~ /(\d+):(\d+)/ p $&, $1, $2, $3, $`, $'
3两个细节
=~表达式是有返回值的,如果不匹配返回nil,匹配则返回第一个字符的位置
message = "Time: 12:34am" a = (message =~ /(\d+):(\d+)/) p a
ruby是在match对象和$1这样的对象之间建立了一座桥梁,即$~
re = /(\d+):(\d+)/ md1 = re.match("Time: 12:34am") md2 = re.match("Time: 10:30pm") p $1, $2 $~ = md1 p $1, $2
4测试正则表达式匹配效果的代码
def show_regexp(a, re) if a =~ re "#{$`}<<#{$&}>>#{$'}" else "no match" end end p show_regexp("abc\ndef\nghi", /abc/)
5锚点
参考http://fsjoy.blog.51cto.com/318484/68433/
^$是真正意义上行的起始点和结束点
\A\z是真正意义上字符串的起始点和结束点
\Z忽略字符串结束时的那个回车符,但是字符串中间的回车符不忽略
def show_regexp(a, re) if a =~ re "#{$`}<<#{$&}>>#{$'}" else "no match" end end p show_regexp("hello world fuck u down towndown gardon ", /gardon\z/)
http://www.rubular.com/
这个网站测试锚点时回车必须敲出来,而不是用\n,应该是字符串识别的问题。
用show_regexp是直接回车,还是\n效果是一样的。
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
当前标题:ruby正则表达式-创新互联
文章位置:http://scjbc.cn/article/dphsso.html