Android通过正则表达式从指定字符串中,获取满足正则表达式的所有字符串,下面我们来看看怎么实现?
正则表达式获取字符串
用正则表达式从一个字符串中取出所有满足正则表达式的字符串,代码如下:
/**
* 获取所有满足正则表达式的字符串
* @param str 需要被获取的字符串
* @param regex 正则表达式
* @return 所有满足正则表达式的字符串
*/
private ArrayList<String> getAllSatisfyStr(String str, String regex) {
if (str == null || str.isEmpty()) {
return null;
}
ArrayList<String> allSatisfyStr = new ArrayList<>();
if (regex == null || regex.isEmpty()) {
allSatisfyStr.add(str);
return allSatisfyStr;
}
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
allSatisfyStr.add(matcher.group());
}
return allSatisfyStr;
}
上面的代码都很简单,值得注意的是matcher的原理跟数据库游标的原理是一样的,但是matcher是通过find()
函数来移动位置,移动了位置后,我们就可以使用group()
函数获取出满足正则表达式的字符串了。这里循环获取出了所有满足正则表达式的字符串。