前端小白做大前端集成安卓物联网设备,看公司领导都是一直 String.indexOf 看的想跳楼,换成了正则匹配的。
规则匹配
public static final String regex = "bb((..)*?)0d0a";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Observable.create((ObservableEmitter<String> emitter) -> {
String hexString = "BB9716A33000112233445566778899001122FD6F030000010055740D0A"+
"BB9716A33000112233445566778899001122FD6F030000010055740D0A";
Matcher mMatcher = pattern.matcher(hexString);
while (mMatcher.find()) {
String hexString = mMatcher.group();
// BB9716A33000112233445566778899001122FD6F030000010055740D0A 匹配到的每一个发到下级
emitter.onNext(hexString);
}
emitter.onComplete();
})
长度匹配
public static final String regex = "aa((..){8})";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Observable.create((ObservableEmitter<String> emitter) -> {
String hexString = "aabb060107ac6660aaaabb060107ac6660aaaabb060107ac6660aa";
Matcher mMatcher = pattern.matcher(hexString);
while (mMatcher.find()) {
String hexString = mMatcher.group();
// aabb060107ac6660aa 匹配到的每一个发到下级
emitter.onNext(hexString);
}
emitter.onComplete();
})