初识Java正则表达式
来源:互联网 发布:手机qq网络连接不可用 编辑:程序博客网 时间:2024/04/30 23:23
正则表达式是一种强大而灵活的文本处理工具。一般来讲,正则表达式就是以某种方式来描述字符串,对字符串进行匹配搜索。例如,想要找到一个数字,在正则表达式中用\d表示一位数字;想要找到字符串中的空字符时使用"\\s","\\"在java中的意思是“为正则表达式插入一个反斜线“,而"\s"表示空白符(空格、tab、换行、换页和回车)。正则表达式是一种简洁的、动态的语言,提供了一种完全通用的方式,能够解决各种字符串处理的相关问题(匹配、选择、编辑、验证等)。再举几个栗子说明一下:"-1234".matches("-?\\d+") true"+211".matches("-?\\d+") true"+527".matches("(-|\\+)?\\d+") true"-?\\d+"表示负数后有一个或多个数字。当需要匹配可能负数也可能正数时,使用表达式"(-|\\+)?\\d+",其中"(-|\\+)"是正则表达式的一个捕获组,里面的"|"表示逻辑或,表示负数或者正数,之所以是"\\+"来表示正数是因为在正则表达式中"+"有着特殊的用法。"\\d"->"\d"表示数字[0-9],后边的"+"就是"+"在正则表达式的特殊用法,即表示匹配"匹配一个或者多个修饰字符",在这里表示匹配一个或多个数字。有一个"替换空格"的算法题目是这么描述的:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。利用Java的String类自带的一个正则表达式工具--replaceAll()方法很容易解决。public String replaceSpace(StringBuffer str) { return str.toString().replaceAll("\\s", "%20");}正如上面代码所示,只需一句代码就更搞定,可见正则表达式的强悍之处。对于Java的正则表达式来说,String类自带的功能比较有限,Java语言提供了强大的正则表达式对象。导入"java.util.regex"包,然后用 static Pattern.compile()方法来编译你的正则表达式即可。然后将你想要检索的字符串传入Pattern对象的matcher()方法。该对方法会生成一个Matcher对象。举个栗子:Matcher m = Pattern.compile("\\w+").matcher("Evening is full of the linnet's wings");while(m.find()) System.out.print(m.group()+" ");输出:Evening is full of the linnet s wings 其中"\\w+"表示匹配一个或多个词字符,Matcher的find()方法可以像迭代器一样前向遍历输入字符串。附表:正则表达式字符B 指定字符B\xhh 十六进制的oxhh的字符\uhhhh 十六进制的oxhhhh的Unicode字符\t 制表符tab\n 换行符\t 回车\f 换页\e 转义附表:正则表达式字符B 指定字符B\xhh 十六进制的oxhh的字符\uhhhh 十六进制的oxhhhh的Unicode字符\t 制表符tab\n 换行符\t 回车\f 换页\e 转义正则表达式字符类[abc] 包含a、b和c的任何字符(和a|b|c相同)[^abc] 除了a、b和c之外的任何字符(^表示否定)[a-zA-Z] 从a到z或者从A到Z的任何字符(-表示范围)[abc[hij]] 任意a、b、c、h、i和j字符(和a|b|c|h|i|j作用相同)(表示合并)[a-z&&[hij]] 任意h、i或j(&&表示交)\s 表示空白符(空格、tab、换行、换页和回车)\S 非空白符(^\s)\d 数字[0-9]\D 非数字[^0-9]\w 词字符[a-zA-Z0-9]\W 非词字符[^\w]逻辑操作符XY Y跟在X后面X|Y X或Y(X) 捕获组。可以在表达式中用\i引用第i个捕获组边界匹配符^ 一行的起始$ 一行的结束\b 词的边界\B 非词的边界\G 前一个匹配的结束量词X? 一个或零个XX* 零个或多个XX+ 一个或多个XX{n} 恰好n次XX{n,} 至少n次XX{n,m} 至少n次,至多m次X未完待续.....
0 0
- Java正则表达式初识
- 初识Java正则表达式
- 初识java正则表达式
- C#----初识正则表达式
- 初识正则表达式
- 初识正则表达式
- 正则表达式-01 初识
- 初识正则表达式
- 正则表达式初识
- 01-初识正则表达式
- 初识正则表达式
- 正则表达式初识
- Python正则表达式初识
- 初识正则表达式
- 【Linux】正则表达式初识
- 初识正则表达式
- 初识正则表达式
- Java——正则表达式_初识网络爬虫
- 简单分段函数的复合构造函数_20160308
- 关于中断上下文为什么不能睡眠?
- shell命令-文件系统的空间信息->df du
- Codeforces--597A--Divisibility(数学)
- Django使用第三方接口(一)
- 初识Java正则表达式
- CodeForces - 596A Wilbur and Swimming Pool (模拟)
- shell命令-awk
- ExtJS学习(四)EditorGrid可编辑表格
- Intent和IntentFilter详解
- 第一次上机实验-2
- 取整函数和夹逼准则_20160310
- 再思linux内核在中断路径内不能睡眠/调度的原因(2010)
- 牛顿迭代法求方根