Android正则表达式匹配替换提取

概述

正则基本语法在这里就不提了,一搜一堆,这里主要提下在Android中的具体应用

主要也就两个类,一个是 Pattern 类, 一个是 Matcher 类

Pattern类

用于正则表达式的规则解析

Pattern pattern = Pattern.complie(String regex);
//如 匹配 url
String reg = "[a-zA-z]+://[^\\s]*";
Pattern pattern = Pattern.compile(reg);

获取Pattern对应的正则表达式

String reg = pattern.pattern(); // pattern() 方法返回实例对应的正则表达式

分割字符串

//语法规则
String[] strArray = pattern.split(CharSequence input);
//实例:根据数字拆分
String input = "1e1e2e5d2";
Pattern pattern = Pattern.complie("\d");
String strArray = pattern.split(input); // 返回值 [e, e, e, d]

Matcher 类

用于处理匹配结果

//语法规则
Matcher matcher = pattern.matcher(String input);

完整匹配

只有整个matcher中的input字符串与pattern的匹配规则完全匹配的时候返回true,否则返回false

Boolean isMatcher = matcher.matcher();

部分匹配

当matcher中的input字符串具有与pattern的规则匹配的时候返回true,否则返回false

Boolean isFind = matcher.find();
if(isFind){
    // 返回匹配到的子字符串在文中的索引位置
    int iStart = matcher.start(); 
    // 返回匹配到的子字符串的最后一个字符在文中的索引位置
    int iEnd = matcher.end(); 
    // 返回匹配到的子字符串
    String str = matcher.group(); 
}

当多次调用find()的时候,会在字符串中寻找下一个能够匹配正则表达式的子字符串

替换

返回值为替换后的结果字串

//替换匹配到的第一个字符串为参数instead值
String str = matcher.replaceFirst(String instead); 
//替换匹配到的所有字符串为参数instead值
String str = matcher.replaceAll(String instead); 

实例:处理字符串中的特殊字符

String reg = "[`~!@#$%^&*()+=|{}':;'\\[\\].<>/?~!@#¥%……&*()——+|{}【】';:”“’。、?]";
Pattern p = Pattern.complie(reg);
Matcher m = p.matcher(str);
String result = m.replaceAll("").trim();
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值