java正则表达式
数字且位数是3-11位
private fun isPhoneNum ( phoneNumStr: String) : Boolean{
val p = Pattern. compile ( "[0-9]{3,11}" )
val m = p. matcher ( phoneNumStr)
return m. find ( )
}
private boolean isPhone ( String name) {
String pattern = "[0-9]{11}" ;
Pattern r = Pattern . compile ( pattern) ;
Matcher m = r. matcher ( name) ;
return m. find ( ) ;
}
以DIAN-JI开头的字符串
private boolean isBleName ( String name) {
String pattern = "DIAN-JI-\\S+" ;
Pattern r = Pattern . compile ( pattern) ;
Matcher m = r. matcher ( name) ;
return m. find ( ) ;
}
匹配altimes=02h=21m=00n=00m=0p=01on=1
public static boolean test1 ( String s) {
String pattern = "altimes=[0-9]{2}h=[0-9]{2}m=[0-9]{2}n=[0-9]{2}m=[0-1]p=[0-9]{2}on=[0-1]" ;
Pattern r = Pattern . compile ( pattern) ;
Matcher m = r. matcher ( s) ;
return m. find ( ) ;
}
提取出times=05h=02m=03n=01m=0p=01on=1里面的数字
public static void test2 ( String s) {
Pattern p = Pattern . compile ( "[0-9]+" ) ;
Matcher m = p. matcher ( s) ;
List < String > allMatches = new ArrayList < > ( ) ;
while ( m. find ( ) ) {
System . out. println ( m. group ( ) ) ;
allMatches. add ( m. group ( ) ) ;
}
}
提取出http://114.114.114.238:8082/faMobile/buildHandyNote/list里面faMobile/之后的内容(buildHandyNote/list)
fun getApiPath ( path: String) : String{
val regex: String = "\\S+\\/faMobile\\/"
val mPattern: Pattern = Pattern. compile ( regex)
val mMatcher: Matcher = mPattern. matcher ( path)
val p= mMatcher. replaceAll ( "" )
HLog. e ( "正则" , path, p)
return p
}