Products
GG网络技术分享 2025-03-18 16:15 1
String s1 = "text is abc16hdb09jd8hsj1";String s2 = "text is 12xiwebu90wu903jj";String s3 = "text is 19jeudnpsowkslslx";
现在我想写一个正则表达式,匹配abc16hdb09jd8hsj1
这类的字符,这类字符**由数字和字母组成,至少包含一个数字和一个字母,开头和末尾可以是数字也可以是字母**
预期效果:
String s1 = "text is abc16hdb09jd8hsj1";Pattern pattern = Pattern.compile(正则表达式);Matcher matcher = pattern.matcher(s1);System.out.println(mather.replaceAll("")); //预期输出为"text is ";
最后的正则表达式**不会匹配纯英文单词或者纯数字**
求解
方便理解将[A-Za-z0-9]记作c,正则可以写为(c*[0-9]c*[A-Za-z]c*)|(c*[A-Za-z]c*[0-9]c*)
Pattern pattern = Pattern.compile("([A-Za-z0-9]*[A-Za-z][A-Za-z0-9]*[0-9][A-Za-z0-9]*)|([A-Za-z0-9]*[0-9][A-Za-z0-9]*[A-Za-z][A-Za-z0-9]*)");
既然前面是固定的,你截取或者匹配前面的,然后取出来用不就好了,比你匹配后面的要简单多了啊
工作中,正则表达式用的可能不是很多,一般使用的时候网上都有现成的实例,很少缺乏比较全面的理解。本文主要以匹配HTML标签为例,简述下正则表达式常用的功能点。匹配HTML片段如下:
Demand feedback