首页 文章

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

提问于
浏览
1

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

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

您可以找到包名称要求here

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

1 回答

  • 0

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

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

    您可以将其插入“替换”方法,以使用空字符串替换任何匹配项 .

    Regex 101是查找正则表达式的每个组件含义的好地方 . )


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

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

    您可以使用 '$1' (表示捕获的点)替换它,而不是空字符串 .

相关问题