1.只有脚本语言才会内建Regular Expressions ,Regular Expression 是一个用于匹配的模版(pattern),匹配对象是String 2.Regular Expression 用于处理与文本有关的工作 3.使用//建立Regular Expression,例如:/pattern/ 4.注意,我要告诉你:Regular Expression 是 an object! 5.pattern为A or B的时候,使用/A|B/,例如 /perl|python/,注意,这里也可以写为 /P(erl|ython)/ 6.正如上面说描述的,Regular Expression可以使用(),同时,它也可以使用算术表达式,当然所谓的算术表达式只是形式上带上算法运算符号,而不含有运算的意义,具体的意义被特殊定义了,下面引用《ruby users guide》中的说明:
*注意我前面提到的概念,Regular Expressions 是用于匹配字符串的,上面材料中提到:“元素”,其实也就是一个字符了
这里有必要做一个说明: ruby里面上表的比如 \s 等被称之为:character classes,下面详细说几个,希望大家能举一反三 1)\s 表示了一个空字符,比如\n,\t,\r这样的转义字符(注意我要澄清大家的一个概念性问题,\n和a,b,c一样是一个字符) 2)\d表示任何一个整数,比如 /\d\d:\d\d:\d\d/ # a time such as 12:34:56 3)\w可以表示数字,注意是数字,而不是整数,确切的说是数字字符和英文字符 4)补充一个上面没有的 “.” 表示没有或者所有的字符串,注意是字符串
7.使用Regular Expressions 匹配操作符为: =~ 比如 p =~ /a/ 这里 =~会返回一个值,这个值是a在p中的位置,如果没有a就返回nil,注意当a出现在p的第一个位置的时候,=~返回0,if 0 ,ruby认为是真,这里和c/c++有所不同和java也不同,要注意。另外,所有比较运算,运算符都会返回一个值,用于在条件判断中控制程序流。
8.Regular Expressions使用举例 p = ‘ahibcd‘
结果为:1
用Regular Expressions 实现查找替换的功能: line.sub(/Perl/, ‘Ruby‘) # replace first ‘Perl‘ with ‘Ruby‘ line.gsub(/Python/, ‘Ruby‘) # replace every ‘Python‘ with ‘Ruby‘ line.gsub(/Perl|Python/, ‘Ruby‘) # replace every occurrence of Perl and Python with Ruby |
|