1.正则表达式基础:
概况:推荐学习网址:RegexLearn
2.关于解决连续数据的格式与获取问题:
2.1问题情景:
在android开发应用中,要求在一个输入框中输入多个电话号码,并且以‘,’隔开,
最终实现群发消息的效果。
2.2实现方案:
通过(?: ): 非捕获分组的方式实现完整匹配(这并不影响具体数据的获取)
非捕获分组:非捕获分组是正则表达式中的一种特殊语法,用于匹配模式但不捕获匹配的内容。
代码实现:
String data = "19555623421,15165260215,18256256248";
//这里非捕获分组的位置要注意,因为其很好涵盖了,的匹配,而且不影响具体数据的获取
String pattern = "\\b\\d{11}(?:,\\d{11})*";
//通过Pattern.compile()编译指定模式
Pattern p = Pattern.compile(pattern);
//创建匹配器获取内容
Matcher m = p.matcher(data);
List<String> matches = new ArrayList<>();
while (m.find()) {
matches.add(m.group());
}
//数据获取
System.out.println("电话数据为:"+matches);
//指定模式匹配
System.out.println("模式匹配:"+Pattern.matches(pattern,data));
运行效果:
电话数据为:[19555623421,15165260215,18256256248]
模式匹配:true