代码如下:
package com.shengsong.dingying;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.shengsong.dingying.utils.LogUtils;
import com.vise.utils.convert.HexUtil;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import me.f1reking.serialportlib.utils.ByteUtil;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
String b = "192.168.30.98:65536";
//校验地址中是否存在 “ip:端口号” (例如rtsp://admin:[email protected]:554/media/video1 )
Pattern p = Pattern.compile("(\\d+\\.\\d+\\.\\d+\\.\\d+)\\:(\\d+)");
Matcher m = p.matcher(b);
//将符合规则的提取出来
String ip=null;
String port= null;
while(m.find()) {
ip = m.group(1);
port = m.group(2);
System.out.println("ip:"+m.group(1));
System.out.println("isboolIp:"+isboolIp(ip));
System.out.println("port:"+m.group(2));
System.out.println("isboolPort:"+isboolPort(port));
}
}
/** * 判断是否为合法IP * @return the ip */
public static boolean isboolIp(String ipAddress) {
String ip = "([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}";
Pattern pattern = Pattern.compile(ip);
Matcher matcher = pattern.matcher(ipAddress);
return matcher.matches();
}
public static boolean isboolPort(String port) {
//端口号验证 1 ~ 65535
String regex = "^([1-9]|[1-9]\\d{1,3}|[1-6][0-5][0-5][0-3][0-5])$";
boolean flag = Pattern.matches(regex, port);
return flag;
}
}