Ruby快速入门(五):字符串和正则表达式
2009-12-08 03:10
411 查看
Ruby中的字符串
用String类表示,例如:
这里第一行用双引号表示的字符串中可以使用转义字符/n表示换行;第二行用单引号表示的字符串中,则不会处理转义字符,而是将其作为普通字符处理。类似的,只有双引号表示的字符串中可以使用#{}表达式。
要在字符串中使用引号,除了用转义字符,还可以用自定义分隔符的方式。
用百分号%就可以自定义分隔符,如这里定义美元符号$为分隔符。而使用两个小于号则能够定义支持跨行的分隔符,如这里定义DEL为分隔符。
当然,Ruby也提供了大量便于操作的功能,例如:
在很多场合,正则表达式
非常重要。在Ruby中,正则表达式位于两条斜线/之间,例如/abc/表示匹配字符串abc。其基本规则包括:
/a/:匹配单个字符a
//?/:匹配单个特殊字符^、$、?、.、/、/、[、]、{、}、(、)、+或者*
/?/:匹配任意单个字符
/*/:匹配任意个字符
/+/:匹配一个或多个字符
/d{5, 10}/:匹配5到10个字符
/[ab]c/:匹配ac或者bc
/[^ab]c/:匹配非ac和非bc
//d/:匹配数字,相反为//D/
//w/:匹配任意字母、数字或下划线,相反为//W/
//s/:匹配任意空白字符(如空格、Tab等),相反为//S/
^:在行首才匹配
$:在行尾才匹配
/A:在字符串的开始才匹配
/z:在字符串的结尾才匹配
/Z:在字符串的结尾(不包括最后的换行符)才匹配
/b:在单词边界才匹配
Ruby中的正则表达式主要支持以下两个操作:
最后看一个简单的例子。
相关文章:
Ruby快速入门(一):安装、运行、类和对象
Ruby快速入门(二):变量、数字、数组和运算符
Ruby快速入门(三):控制语句
Ruby快速入门(四):类和模块
用String类表示,例如:
puts "hello,/nstring" puts 'hello,/nstring'
这里第一行用双引号表示的字符串中可以使用转义字符/n表示换行;第二行用单引号表示的字符串中,则不会处理转义字符,而是将其作为普通字符处理。类似的,只有双引号表示的字符串中可以使用#{}表达式。
要在字符串中使用引号,除了用转义字符,还可以用自定义分隔符的方式。
puts %$hello, "delimiter"$ puts <<DEL some text more text yet more DEL
用百分号%就可以自定义分隔符,如这里定义美元符号$为分隔符。而使用两个小于号则能够定义支持跨行的分隔符,如这里定义DEL为分隔符。
当然,Ruby也提供了大量便于操作的功能,例如:
# 连接这三个字符串,得到“abc” "a"+"b"+"c" "a"<<"b"<<"c" # 获取字符串中的一段 str="test sub-string" str["abc"] # 不存在,返回NULL str["te"] # 存在,返回“te” str["test"]="hello" # 将test替换为hello str[0, 5] # 取位子0开始的5个字符,为hello # 插入 str.insert(5, " insert") # 得到hello insert sub-string # 反序 str.reverse # 得到gnirts-bus tresni olleh
在很多场合,正则表达式
非常重要。在Ruby中,正则表达式位于两条斜线/之间,例如/abc/表示匹配字符串abc。其基本规则包括:
/a/:匹配单个字符a
//?/:匹配单个特殊字符^、$、?、.、/、/、[、]、{、}、(、)、+或者*
/?/:匹配任意单个字符
/*/:匹配任意个字符
/+/:匹配一个或多个字符
/d{5, 10}/:匹配5到10个字符
/[ab]c/:匹配ac或者bc
/[^ab]c/:匹配非ac和非bc
//d/:匹配数字,相反为//D/
//w/:匹配任意字母、数字或下划线,相反为//W/
//s/:匹配任意空白字符(如空格、Tab等),相反为//S/
^:在行首才匹配
$:在行尾才匹配
/A:在字符串的开始才匹配
/z:在字符串的结尾才匹配
/Z:在字符串的结尾(不包括最后的换行符)才匹配
/b:在单词边界才匹配
Ruby中的正则表达式主要支持以下两个操作:
"hello, regular expression"=~/exp/ # 返回15,即exp在字符串中的位置 /exp/.match("hello, regular expression") # 如果匹配则返回一个MatchData对象,否则返回NULL
最后看一个简单的例子。
//b[a..l]/d/.match("hello, abc111 a123 z111") # 获得一个匹配“a1”
相关文章:
Ruby快速入门(一):安装、运行、类和对象
Ruby快速入门(二):变量、数字、数组和运算符
Ruby快速入门(三):控制语句
Ruby快速入门(四):类和模块
相关文章推荐
- Ruby快速入门(五):字符串和正则表达式
- 正则表达式 (一) 快速入门
- C#正则表达式快速入门
- C#正则表达式快速入门
- 正则表达式快速入门
- 正则表达式基础(python快速入门精华切记04)
- C#正则表达式快速入门
- 正则表达式快速入门
- 正则表达式快速入门
- 正则表达式快速入门
- 正则表达式快速入门
- 正则表达式快速入门教程
- groovy入门 第03章 字符串和正则表达式
- 简单入门正则表达式 - 第七章 字符串、行和词边界
- JavaScript中的正则表达式快速入门
- C# 正则表达式快速入门
- 正则表达式快速入门
- C#正则表达式快速入门
- 正则表达式快速入门(python示例)
- vb.net正则表达式快速入门(1)