栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java技能树-RE-正则应用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java技能树-RE-正则应用

场景1:

  • Windows的findstr命令
  • Linux的grep命令


场景2:Java的String类

  • public boolean matches(String regex)
  • public String[] split(String regex)
  • public String[] split(String regex, int limit)
  • public String replaceFirst(String regex, String replacement)
  • public String replaceAll(String regex, String replacement)


场景3:Java的Pattern类和Matcher类

  • public final class Pattern extends Object implements Serializable
  • public final class Matcher extends Object implements MatchResult


问题1:获取所有包名不带.的应用

  • /v
  • ^

adb shell pm list packages | findstr /v "[.]"


问题2:获取联网应用的PID

adb shell lsof | findstr IPv

C:>adb shell lsof | findstr IPv
ims_rtp_daemon  3504      radio   19u     IPv6                          0t0     205132 UDP []:38088->[]:0
ims_rtp_daemon  3504      radio   20u     IPv6                          0t0     205136 UDP []:45658->[]:0
droid.bluetooth  4216  bluetooth  131u     IPv4                          0t0     665124 TCP :8872->:0 (LISTEN)

思路1:lsof提取PID(字符串分割)

  • 为啥s* 匹配结果一个一个字符
public class Test {
    public static void main(String[] args) {
        String s = "ims_rtp_daemon  3504      radio   19u     IPv6                          0t0     205132 UDP []:38088->[]:0";
        String[] s1 = s.split("\s+");
        String[] s2 = s.split("\s*");

        for (String s3 : s1) {
            System.out.println(s3);
        }

        for (String s3 : s2) {
            System.out.println(s3);
        }
    }
}

 

参考资料:

JAVA正则表达式匹配多个空格_予亭的博客-CSDN博客_正则匹配空格


思路2:lsof 提取 PID(字符串替换)

public class Test {
    public static void main(String[] args) {
        String s1 = "ims_rtp_daemon  3504      radio   19u     IPv6                          0t0     205132 UDP []:38088->[]:0";

        while (s1.contains("  ")) {
            s1 = s1.replace("  ", " ");
        }

        System.out.println(s1);
    }
}

问题X:从PID、NAME中提取NAME

adb shell ps -o PID,NAME | findstr "\s+"

    1 init
   10 [rcu_tasks_kthre]
  126 [kblockd]
 1053 [f2fs_ckpt-254:1]
10148 com.android.smspush

 


问题3:获取使用sharedUserId的应用列表

adb shell dumpsys package | findstr "Package.[ sharedUser"

C:>adb shell dumpsys package | findstr "Package.[ sharedUser"
  Package [com.sohu.inputmethod.sogou.oem] (48b19f8):
  Package [com.zte.videoeditoroverLayZTEColor] (287a437):
  Package [com.zte.videoeditoroverLayZTEShape] (c5ea6c2):
  Package [com.android.cts.priv.ctsshim] (5208709):
  Package [com.android.internal.systemui.navbar.gestural_indicator] (9933d3c):
  Package [com.yulore.framework] (362834b):
  Package [com.mifavor.callsettingoverLayZTEColor] (fb50fe6):
  Package [com.mifavor.callsettingoverLayZTEShape] (d034d7d):
  Package [com.android.phone.overlay.common.vendor] (d4abd40):
  Package [com.zte.mifavor.zsearch] (816f61f):
  Package [com.android.providers.telephony] (ef013a9):
    sharedUser=SharedUserSetting{921efca android.uid.phone/1001}
  Package [com.android.dynsystem] (be2e2d3):
    sharedUser=SharedUserSetting{dbd09b1 android.uid.system/1000}
  Package [com.zte.videoplayeroverLayZTEColor] (c36fe04):
  Package [com.zte.videoplayeroverLayZTEShape] (464b0b3):
  Package [com.vertu.personalizationwidget] (b5f8a6e):
  Package [com.android.providers.calendar] (2efcfa5):

问题4:获取SharedSystemUid的所有应用

adb shell dumpsys package shared-users | findstr "SharedUser.[ userId PackageSetting"

C:>adb shell dumpsys package shared-users | findstr "SharedUser.[ userId PackageSetting"
  SharedUser [android.media] (594e5d):
    userId=10174
      PackageSetting{10e41d3 com.android.mtp/10174}
      PackageSetting{1b789fc com.android.providers.media/10174}
      PackageSetting{2096f49 com.android.providers.downloads/10174}
      PackageSetting{b08a719 com.android.providers.downloads.ui/10174}
      PackageSetting{bce3a7d cn.nubia.filebrowser/10174}
      PackageSetting{bcfd116 com.android.soundpicker/10174}
  SharedUser [com.qualcomm.location.xt.optin] (a6fabe8):
    userId=10297
      PackageSetting{401f746 com.qualcomm.location.XT.setup/10297}
  SharedUser [com.redteamobile.virtual.softsim] (9668b1b):
    userId=10326
      PackageSetting{a82b4f6 com.redteamobile.roaming/10326}
  SharedUser [android.uid.networkstack] (c07c5fd):
    userId=1073
      PackageSetting{7a1facb com.android.networkstack.permissionconfig/1073}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/980730.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号