世界杯开幕了,看了三场球。南非1-1墨西哥,法国0-0乌拉圭,韩国2-0希腊。看了法国的表现,就知道为什么会输给中国了,而看了韩国队的表现,不得不担心中国队的差距。无论如何祝福中国队,虽然讨厌韩国,但也祝福包括韩日在内的亚洲球队能走得更远。
锚(anchor)。锚不与字符串开头与末尾匹配,而与行首和行尾匹配。
string = "abc\ndef\nghi"
/^def/ =~ string # 4
/def$/ =~ string # 4
而\A 和\Z 匹配字符窜本身的开头和末尾。\Z 可以匹配最后一个换行符,而\z 不可以。
string = "abc\ndef\nghi"
/\Adef/ =~ string # nil
/def\Z/ =~ string # nil
/\Aabc/ =~ string # 0
/ghi\Z/ =~ string # 8
str2 << "\n"
/ghi\Z/ =~ string # 8
/ghi\z/ =~ string # nil
\b 匹配单词边界,\B 匹配非单词边界的位置。
str = "this is a test"
str.gsub(/\b/, "|") # "|this| |is| |a| |test|"
str.gsub(/\B/, "-") # "t-h-i-s i-s a t-e-s-t"
量词符
/x{5}/ # 5个x
/x{5,7}/ # 5到7个x
/x{,8}/ # 最多8个x,会有警告
/x{3,}/ # 最少3个x
贪婪
str = "Where the sea meets the moon-blanch'd land,"
match = /.*?the/.match(str)
p match[0] # 结果是Where the sea meets the,而不是Where the。
正负预查
s1 = "New World Dictionary"
s2 = "New World Symphony"
s3 = "New World Order"
reg = /New World(?= Dictionary| Symphony)/ # 正预查
m1 = reg.match(s1)
m1.to_a[0] # "New World"
m2 = reg.match(s2)
m2.to_a[0] # "New World"
m3 = reg.match(s3) # nil
reg2 = /New World(?! Symphony)/ # 负预查
m1 = reg2.match(s1)
m1.to_a[0] # "New World"
m2 = reg2.match(s2) # nil
m3 = reg2.match(s3)
m3.to_a[0] # "New World"
非捕获组
str = "a123b45c678"
str.sub(/(a\d+)(?:b\d+)(c\d+)/, "1st=\\1, 2nd=\\2, 3rd=\\3")
# "1st=a123, 2nd=c678, 3rd="
内嵌子表达式。可以用来防止贪婪。
str = "abccccdef"
re1 = /(abc*)cdef/
re2 = /(?>abc*)cdef/
re1 =~ str # 0
re2 =~ str # nil,子表达式使用了全部的c
分享到:
相关推荐
### Addison Wesley《The Ruby Way》第二版(2006年10月) #### 书籍概览 《The Ruby Way》是由Hal Fulton编写的关于Ruby编程语言的经典著作,该书的第二版出版于2006年10月,由Addison Wesley Professional出版社...
它覆盖了Ruby的基础语法、类和对象、模块、集合、文件和I/O、网络编程、正则表达式、线程和并发、元编程等方面,以及如何利用Gem进行项目开发。无论是初学者还是有经验的开发者,都能从中受益,提升Ruby编程技能。
Ruby的标准库非常丰富,书中会介绍一些常用的库,如Net::HTTP用于网络请求,JSON和YAML用于数据序列化,Regexp用于正则表达式匹配,以及Open3和PTY用于进程管理和交互。这些库大大扩展了Ruby的功能,使其在各种场景...
它深入探讨了Ruby语言的各种特性,包括基础语法、面向对象编程、模块和类、异常处理、文件系统操作、网络编程以及正则表达式等。书中的例子丰富,旨在帮助读者理解并掌握Ruby的精髓,从而能以"Ruby Way"的方式来思考...
数组、字符串、正则表达式和迭代器、代码块、闭包是Ruby语言在实际编程中不可或缺的部分,掌握它们对于高效编程是必不可少的。 最后,元编程部分将探讨Ruby语言中动态添加方法和属性,以及操作类和模块的能力,这是...
- **字符串处理**:提供丰富的字符串处理功能,如字符串插值、多行字符串、正则表达式等。 - **异常处理**:支持异常处理机制,能够捕获并处理程序运行时出现的异常情况。 #### 应用领域 - **Web开发**:Ruby最...
更简单的正则表达式,正则表达式是处理字符串的强大工具,这里强调了其在解决特定问题时的简化应用。 #### 42. PHP Solution PHP解决方案,展示了PHP语言在Web开发领域解决问题的能力和灵活性。 #### 43. Another...