正则表达式(上)
来源:互联网 发布:app美图软件 编辑:程序博客网 时间:2024/05/17 07:35
先推荐一个在线的Ruby正则表达式编辑器http://www.rubular.com/
Ruby的正则表达式以"//"作为构造方法。表达式返回一个RegExp的对象。
一般规则:
/a/匹配字符 a。
/\?/匹配特殊字符?。特殊字符包括^, $, ? , ., /, \, [, ], {, }, (, ), +, *..匹配任意字符,例如/a./匹配 ab和ac。
/[ab]c/匹配 ac 和bc,[]之间代表范围。例如:/[a-z]/ , /[a-zA-Z0-9]/。/[^a-zA-Z0-9]/匹配不在该范围内的字符串。
/[\d]/代表任意数字
/[\w]/代表任意字母,数字或者_
/[\s]/代表空白字符,包括空格,TAB和换行。
/[\D]/,/[\W]/,/[\S]/均为上述的否定情况。
高级规则:
?代表 0或1个字符。/Mrs?\.?/匹配"Mr","Mrs","Mr.","Mrs."。
*代表 0或多个字符。/Hello*/匹配"Hello","HelloJack"。
+代表 1或多个字符。/a+c/匹配:"abc","abbdrec"等等。
/d{3}/匹配 3个数字。
/d{1,10}/匹配 1-10个数字。
/d{3,}/匹配 3个数字以上。/([A-Z]\d){5}/匹配首位是大写字母,后面 4个是数字的字符串。
下图匹配的是:M后面是字符r, 后面是0或1个字符s, 在后面是0或1个字符".", 匹配Mr、Mrs、Mr.、Mrs.
下面可以匹配</p>,</ p>,</p >,< /p>.
正则表达式操作
String和RegExp均支持=~和match 2个查询匹配方法
可以看出,如果能够匹配,=~返回匹配的字符串位置,而match返回一个MatchData
对象。如果不匹配返回nil。
MatchData 可以取出其中符合各个子匹配的内容。看下面的例子:
m[0]返回匹配主表达式的字符串下面的方法是等同的:
m[n] == m.captures[n]
Ruby也自动的为我们填写了一些全局变量,它们以数字做名:$1,$2,等等,$1包含的是正则表达式中从左侧开始的第一对小括号内的子模式所匹配的字符串
我们看出匹配时,是从外到内,从左到右的顺序
其它的一些方法
- 正则表达式(上)
- 正则表达式(上)
- Ruby正则表达式(上)
- JavaScript正则表达式(上)
- Ruby正则表达式(上)
- javaScript正则表达式(上)
- Java正则表达式(上)
- python正则表达式学习笔记(上)
- JavaScript正则表达式学习(上)
- javascript之正则表达式(上)
- JS 正则表达式RegExp(上)
- 正则表达式其实并不难(上)
- 正则表达式举例(上)
- Symbian上使用正则表达式
- Java正则表达式详解(上)
- 字符串、格式化、正则表达式【上】
- 字符串、格式化、正则表达式【上】
- 字符串、格式化、正则表达式【上】
- Java程序员到架构师的推荐阅读书籍(转)
- jsp标签
- 设置Chrome以https方式访问指定网址
- ECLIPSE中各插件的安装方法
- 七、拓扑图SQL生成
- 正则表达式(上)
- /etc/fstab
- 学习《windows核心编程》小结
- Invoke vs BeginInvoke
- Oracle Materialized View
- smarty2 变量调节器Variable Modifiers
- [libxml2]小心libxml2解析含有中文字符串时的误解
- MySQL中对查询的结果集取交集如何实现?
- C#上机 第十周 运算器