在java中使用正则表达式

简介:
正则表达式(regular expression)一个又经典又实用又陌生的东西。说他经典因为"正则表达式"在1956年就有了,说他实用是因为各种语言里都有它的身影,说他陌生是因为使用的人不很多。
 
今天遇到了,不妨就了解一下吧。反正有益无害,绝对是绿色产品。
正则表达式主要应用于文本的处理,如检索,替换,检查错误,文字拆分...实在是一言难尽,如果要全部写出来,一本书都不差不多。还好oreilly已经为我们出了一本了。
 
讲具体内容以前先给个完整的例子,这样能有个感性的认识。
import java.util.regex.*;
public class Regex{
   public static void main(String[] args){
        String text = "my email address is  [email]xhinker@163.com[/email]";
        Pattern pattern = Pattern.compile(" \\w+@\\w+.\\w+");
        Matcher matcher = pattern.matcher(text);
        if(matcher.find()){
            System.out.println(matcher.group());
        }
 
   }
}
把这段程序用jdk或jcreator或水腻的便了。反正运行起来就是了
输出结果:xhinker@163.com
当你看完下面的东西回头再看看这段程序就会发现,这不过是小菜一碟
 
字符和字符类
表格 A: 字符匹配
操作
解释
例子
结果
.
单个字符匹配
   .ord
匹配 “ford”, “lord”, “2ord”,
[ ]
多个字符列表
   [cng]
只会匹配 “cord”, “nord”, 和 “gord”
[^ ]
不出现字符列表
   [^cn]
匹配 “lord”, “2ord”, 等. 但不会匹配 “cord” or “nord”


  [a-zA-Z]
匹配 “aord”, “bord”, “Aord”, “Bord”等


   [^0-9]
匹配 “Aord”, “aord”, 等. 但不会匹配“2ord”, 等.
 
表格 B: 重复操作符
操作
解释
例子
结果
?
匹配0次或1次
 “?erd”
匹配 “berd”, “herd”“erd”等
*
匹配0次以上
“n*rd”
匹配 “nerd”, “nrd”, “neard”, 等.
+
匹配1次以上
“[n]+erd”
匹配 “nerd”, “nnerd”, 等., 但不匹配 “erd”
{n}
匹配n次
“[a-z]{2}erd”
匹配“cherd”, “blerd”, 等. 但不匹配 “nerd”, “erd”, “buzzerd”, 等.
{n,}
匹配n次以上
“.{2,}erd”
匹配 “cherd” and “buzzerd”, but not “nerd”
{n,N}
匹配n-N次
 “n[e]{1,2}rd”
匹配 “nerd” and “neerd”等
 
常用符号:
\d:[0-9]
\D:[^0-9]
\w:[a-zA-Z0-9]
\W:[^a-zA-Z0-9]
 
{?i):大小写无关
 
\b和\B分别表示词边界和非词边界
当然上面这些只不过是最常用的,写出几个正则表达式是没有问题了。接下来说说java。
在java里\有其自身的意义,所以在用\s,\d的时候要加上一个\也就是\\s 、 \\d \\(等
java自1.4后开始支持正则表达式,东西都放在java.util.regex包里,用Pattern生成一个模式对象,然后用matcher进行匹 配。如果要输出匹配结果的话,一定要记得写上matcher.find();否则会出错。当然也可以用替换,这就要看你的喜好拉。想看更多的例子就去 jdk帮助文档。
 
想了解更多或者掌握正则表达式的话,google去吧,那里是知识的海洋。
目录
相关文章
|
3月前
|
Java Perl
Java进阶之正则表达式
【7月更文挑战第17天】正则表达式(RegEx)是一种模式匹配工具,用于在字符串中执行搜索、替换等操作。它由普通字符和特殊元字符组成,后者定义匹配规则。
25 4
|
2月前
|
监控 Java API
|
3月前
|
数据采集 监控 Java
day21:Java零基础 - 正则表达式
【7月更文挑战第21天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
25 1
|
3月前
|
Java
如何在Java中使用正则表达式
如何在Java中使用正则表达式
|
3月前
|
Java
如何使用Java中的正则表达式
如何使用Java中的正则表达式
|
4月前
|
Java Perl
java 正则表达式
java 正则表达式
32 2
|
4月前
|
XML Java API
正则表达式在Java中的使用(二)
正则表达式在Java中的使用(二)
25 1
|
3月前
|
Java
正则表达式在Java中的应用与实例
正则表达式在Java中的应用与实例
|
3月前
|
Java
Java中的正则表达式详解
Java中的正则表达式详解