您的位置:首页 > 编程语言 > Java开发

java 正则表达式

2016-03-10 17:49 309 查看
正则表达式基本上每个编程语言上都有,而正则表达式的功能非常强大,可以匹配任何格式的字符,通过简单的一行代码就能判断字符串是否匹配。java正则的应用还有替换,查找等等。

如何匹配

http url 匹配

String url = "https:\\www.baid45u.com\\?wd=adf";
boolean m1 = Pattern.matches("http:\\\\([A-z0-9]+\\.)+[A-z]+.*", url);
System.out.println(m1);


Pattern.matches
方法是一个正则表达式和一个字符串匹配,如果匹配成功则返回true,否则返回false

java 正则的特殊字符

如果你想匹配一个
.
,你会怎么匹配?也许你会使用equals 方法。如果是比较复杂的匹配,如邮箱那你则怎么匹配
.
呢?

下面是一些对话,可以看看。

小明:可以用
Pattern.matches(".", ".");


大神:你看这些代码的返回值都是true

Pattern.matches(".", "s");
Pattern.matches(".", "A");
Pattern.matches(".", "1");
Pattern.matches(".", "&");


为什么会这样呢?

因为
.
在正则表达式里面是个特殊符号,和字符串的意义不同。

正确的方式是
Pattern.matches("\\.", ".");


下面看看一些正则里面的特殊符号。

符号意义
//此符号正则里面的转义符,例如上面把
.
特殊进行转义,就变成了正则里面的
.
[]用于单个字符匹配,如
Pattern.matches("[hello]", "e");
则能匹配成功
{}用于匹配字符出现的次数
{5}
则表示前一个表达式出现次数必须5次。
{1,}
则表示前一个表达式出现的次数必须0次以上 。
{3,7}
则标示前一个表达式出现的范围。
*用于匹配前一个表达式的次数,不管出现多少次都为true
?用于匹配前一个表达式的次数,0 次或1 次为true
+用于匹配前一个表达式的次数,1 次或多次为true
()将多个表达式分组
^此表达式由两个作用,第一是限制一个表达式开头,另一个是反义的意思
$限制表达式结尾
|或匹配,用于多个表达式匹配
.用于匹配任意单个字符

其他表达式

java里面提供了一些其他的表达式,比较简短

表达式意义
/d用于匹配单个数字字符,可以用[0-9]替代
/D用于匹配单个非数字字符,可以用[^0-9]替代
/w:用于匹配单个字母数字下划线字符,等同于[a-zA-Z_0-9]
/W和/w 正好相反
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  正则表达式