我想从字符串中过滤掉错误的字符(稍后用空字符串替换它们)。我尝试制作自己的正则表达式,但我还没有成功完成它。我需要JavaScript支持。
期望效果:com.12%example%.5a5pp
=> com.example.a5pp
(正则表达式匹配:[1,2,%,%,5]
)。
您可以找到包名称要求here:
Android应用程序的完整Java语言样式包名称。名称应该是唯一的。名称可能包含大写或小写字母('A'到'Z'),数字和下划线('_')。但是,单个包名称部分只能以字母开头。
答案 0 :(得分:0)
我自己对Ruby更熟悉,但我相信Android应用程序是用Java编写的,而Java可以做(?<)
看后台。根据这些假设,此正则表达式将匹配任何不正确的字符:
/[^\w.]|(?<=^|\.)[^A-Za-z]+/g
您可以将其插入“替换”方法,以使用空字符串替换所有匹配项。
(Regex 101是查找正则表达式每个组成部分含义的好地方。)
[更新]对于不支持后视的JavaScript,您可能必须捕获组中的点(如果有)以便能够将其放回:
/[^\w.]|(^|\.)[^A-Za-z]+/g
而不是空字符串,您可以将其替换为'$1'
(代表捕获的点)。