正则表达式匹配Android包名称 [英] Regular expression matching Android package name

查看:189
本文介绍了正则表达式匹配Android包名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何检查字符串是否为有效的Android软件包名称?

How can I check if a String is a valid Android package name?

推荐答案

AndroidManifest文档中针对包属性描述了有效的Android包名称:

A valid Android package name is described in the AndroidManifest documentation for the package attribute:

名称应唯一.该名称可以包含大写或小写字母("A"至"Z"),数字和下划线("_").但是,单个包装名称部分只能以字母开头.

The name should be unique. The name may contain uppercase or lowercase letters ('A' through 'Z'), numbers, and underscores ('_'). However, individual package name parts may only start with letters.

请参阅: https://developer.android.com/guide/topics/manifest/manifest-element.html#package

以下正则表达式将匹配有效的Android软件包名称:

The following regular expression will match a valid Android package name:

^([A-Za-z]{1}[A-Za-z\d_]*\.)+[A-Za-z][A-Za-z\d_]*$

示例用法:

String regex = "^([A-Za-z]{1}[A-Za-z\\d_]*\\.)+[A-Za-z][A-Za-z\\d_]*$";
List<PackageInfo> packages = context.getPackageManager().getInstalledPackages(0);
for (PackageInfo packageInfo : packages) {
  if (packageInfo.packageName.matches(regex)) {
    // valid package name, of course.
  }
}

有关正则表达式的详细说明,请参见: https://regex101.com/r/EAod0W/1

For a detailed explanation of the regex, see: https://regex101.com/r/EAod0W/1

这篇关于正则表达式匹配Android包名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆