这种不符合:
张江路888碧波大道295 2个路之间是数字开头则失败(false)
下面返回true:
张江路w888碧波大道295 true
张江路靠近碧波大道295 true
------解决方案--------------------
A,B 是固定的,那就判断A,B之间的字符串,第一个是不是在0-9之间的字符,应该不难弄。
------解决方案--------------------
- Java code
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { String A = "张江路"; String B = "碧波大道"; Pattern p = Pattern.compile(A + "\\d.*" + B); Matcher m = p.matcher("张江路12p碧波大道295"); while(m.find()){ System.out.println("false"); } }}
------解决方案--------------------
- Java code
String str = "aaaaa222bbbb"; String A = "aaa"; String B = "bbb"; Pattern p = Pattern.compile((A + "*?" + B)); Matcher m = p.matcher(str); while(m.find()){ String temp = m.group(); System.out.println(temp + "\t" + temp.matches(A +"[^\\d].*?" + B)); }