Java/Android合法完整类名正则表达式

此前一篇(Java/Android合法包名正则表达式)给出了java/android合法包名的正则:

[a-zA-Z]+[0-9a-zA-Z_]*(\.[a-zA-Z]+[0-9a-zA-Z_]*)*

在此基础之上完成一个合法完整类名的正则表达式。一个合法完整类名由“一个合法包名”+“.”+“一个合法Java类名”构成。
一个Java合法类名,与包名的一段类似:可以包含大写字母(A到Z)、小写字母(a到z)、数字和下划线,必须以字母开头。基于上,合法完整类名的正则表达式:

[a-zA-Z]+[0-9a-zA-Z_]*(\.[a-zA-Z]+[0-9a-zA-Z_]*)*\.[a-zA-Z]+[0-9a-zA-Z_]*

再进一步,考虑一下内部类的情况。我们知道,内部类名是在外部类名后加“$”拼接而成,譬如,com.android.test.MyClass的内部定义了一个类MyInnerClass,那么它的完整类名为

com.android.test.MyClass$MyInnerClass

因此,在前面的正则基础上增加内部类:

[a-zA-Z]+[0-9a-zA-Z_]*(\.[a-zA-Z]+[0-9a-zA-Z_]*)*\.[a-zA-Z]+[0-9a-zA-Z_]*(\$[a-zA-Z]+[0-9a-zA-Z_]*)*

注意:上述提到的几个正则表达式中,都有转义字符\的使用。这里的\是在正则表达式中起到转义作用,也就说转义字符本身是正则表达式的字面值的一部分。有些语言,譬如JAVA,在字符串常量定义中不能直接使用转义符\,需要再加一个转义符。有些IDE,譬如Android Studio,拷贝粘贴过程中会自动转换,如果没有转换也会报错提示。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值