java 字符串类型中正则表达式的应用

编程当中正则表达式的应用往往会给程序带来意想不到的便利性,也许不用正则表达式可能很繁琐的处理过程,经过正则表达式的处理便会更加简短有效,为了日后复习时方便查看,便在此处记录自己对java正则表达式的一些总结,我也是正在学习当中,如有错误,还请及时批评指正。

部分正则表达式语法

符号描述
.匹配除“\r\n"之外的任何单个字符
^匹配输入字符串开始的位置,即以该字符串开头
$匹配输入字符串结尾的位置,即以该字符串结尾
*零次或多次匹配前边的字符或子表达式,相当于{0,}
+一次或多次匹配前边的字符或子表达式,相当于{1,}
?零次或一次匹配前边的字符或子表达式,相当于{0,1}
{n}n是非负整数,恰好匹配n次,例如"o{2}"匹配”cool“而不匹配“coool”
{n,}n是非负整数,至少匹配n次
{n,m}至少匹配n次,最多匹配m次
x|y匹配x或y
[abc]匹配括号中的任意一个字符,例如[abc]匹配“apple”中的“a"
[^abc]方向字符集,匹配不包含在【】中的字符,例如匹配“apple"中的”p" “p” "l” “e”
[a-z]字符范围匹配a~z中的任意一个字符
[^a-z]同理
\b单词边界,即单词与空格之间
\B非单词边界
\d数字字符匹配,等效于[0-9]
\D非数字
\w单词字符[a-zA-Z_0-9]
\W非单词字符
\s匹配任何空白字符,包括 空格,制表符,换页符,等效于[\f\n\r\t\v]
\S匹配任何非空白符

上边只是部分常用的语法,想了解更多的正则表达式语法,读者可以自行查询。通过对正则表达式的灵活组合和运用,可以解决很多的问题。例如邮箱,URL匹配,用户名合法检查,甚至是汉字匹配等等。

java String类型中正则表达式的应用

1、替代函数 replace()、replaceFirst()、replaceAll()函数

public String replace(CharSequence target,CharSequence replacement)
使用指定字符串替换指定字面值的字符串,即不支持正则表达式,替换所有满足条件的子字符串。

String s="stephen is stephen!";
String rex="stephen";
s=s.replace(rex, "#");
System.out.println(s);

运行结果为: # is #!
类似的,replaceFirst()只替换第一个满足条件的子字符串,replaceAll()替换所有满足条件的子字符串,但这两个函数支持正则表达式。

	String s="stephen is stephen!";
	String rex="\\bs";
	String first=s.replaceFirst(rex, "%");
	String all=s.replaceAll(rex, "#");
	System.out.println(first);
	System.out.println(all);

输出结果为:
%tephen is stephen!
#tephen is #tephen!

2、split()函数

按照指定的正则表达式切分字符串

	String s="abc123def345gh908jkl!";
	String rex="\\d{3}";
	String[] result = s.split(rex);
	for(String var:result)
		System.out.print(var);

输出结果为
abcdefghjkl!

3、String 类maches()函数

public boolean matches(String regex)
判断此字符串是否匹配给定的正则表达式。

	String s="abc123def345gh908jkl!";
	String rex="[\\w!]*";
	System.out.print(s.matches(rex));

输出结果为true.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值