当前位置:   article > 正文

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

android正则部分匹配

概述

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

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

Pattern类

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

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

获取Pattern对应的正则表达式

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

分割字符串

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

Matcher 类

用于处理匹配结果

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

完整匹配

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

Boolean isMatcher = matcher.matcher();
  • 1

部分匹配

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

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

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

替换

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

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

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

String reg = "[`~!@#$%^&*()+=|{}':;'\\[\\].<>/?~!@#¥%……&*()——+|{}【】';:”“’。、?]";
Pattern p = Pattern.complie(reg);
Matcher m = p.matcher(str);
String result = m.replaceAll("").trim();
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/286396
推荐阅读
相关标签
  

闽ICP备14008679号