黑马程序员技术交流社区
标题:
大家好,有个关于正则的问题想问下
[打印本页]
作者:
laijun
时间:
2016-7-22 22:16
标题:
大家好,有个关于正则的问题想问下
创建ArrayList对象,添加成员,如"abcd3","abcde"等,代码实现方法体:public void deleteNum(ArrayList<String> list){...}。要求凡是成员中包含有数字(0~9)的均删除,如成员"abcd3"是需要删除的。
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("abcs");
list.add("abcs2");
list.add("abcsd");
list.add("abcsda");
deleteNum(list);
}
public static void deleteNum(ArrayList<String> list) {
Iterator<String> it = list.iterator();
String regex = "\\d";
while(it.hasNext()) {
if(it.next().matches(regex)) {
it.remove();
}
}
System.out.println(list);
}
为什么我删不掉里面含有数字的字符串,"\\d"不是代表任意数字吗,求大神解答TAT
作者:
Frankle
时间:
2016-7-23 09:53
正则的写得不对,数字前面的字母也应该作为表达式的一部分,字母的正则表达式是[a~zA~Z],它出现了多次,那么就是[a~zA~Z]+,后面的数字出现1次以上,则为\\d+,所以正确的表达式应该是这样:String regex = "[a~zA~Z]+\\d+";
作者:
cat73
时间:
2016-7-23 10:00
换这个正则:
^.*\\d.*$
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2