使用正则表达式从android包名称中过滤掉错误的字符

时间:2016-04-22 00:44:06

标签: android regex android-manifest

我想从字符串中过滤掉错误的字符(稍后用空字符串替换它们)。我尝试制作自己的正则表达式,但我还没有成功完成它。我需要JavaScript支持。

期望效果:com.12%example%.5a5pp => com.example.a5pp(正则表达式匹配:[1,2,%,%,5])。

您可以找到包名称要求here

  

Android应用程序的完整Java语言样式包名称。名称应该是唯一的。名称可能包含大写或小写字母('A'到'Z'),数字和下划线('_')。但是,单个包名称部分只能以字母开头。

1 个答案:

答案 0 :(得分:0)

我自己对Ruby更熟悉,但我相信Android应用程序是用Java编写的,而Java可以做(?<)看后台。根据这些假设,此正则表达式将匹配任何不正确的字符:

/[^\w.]|(?<=^|\.)[^A-Za-z]+/g

您可以将其插入“替换”方法,以使用空字符串替换所有匹配项。

Regex 101是查找正则表达式每个组成部分含义的好地方。)

[更新]对于不支持后视的JavaScript,您可能必须捕获组中的点(如果有)以便能够将其放回:

/[^\w.]|(^|\.)[^A-Za-z]+/g

而不是空字符串,您可以将其替换为'$1'(代表捕获的点)。