我必须在Java中做一个正则表达式,以识别我在控制台中编写的行是Java中类的包装行。
例如,以下行是正确的:package mx.com.example.aplication;
但这是不正确的:Package mx. com. example.aplication
我必须检查整个结构,点和大写
我有这个:
^(\bpackage)[\s]{1}[A-Za-z]
我无法让我的String用;
评估结尾
答案 0 :(得分:0)
现在,您的正则表达式只是读取单词package,一个空格和一个字母。下面的正则表达式适用于您的示例。
^((?:[a-z][a-z\-\_]+))(\s+)((?:[a-z][a-z\.\d\-\_]+)\.(?:[a-z][a-z\-\_]+))(?![\w\.])\s*(;)$
上面的此正则表达式代码允许单词“ package”,后跟一个空格,后跟一个完全限定的域名,然后是一个分号。这样它将检查整行。
答案 1 :(得分:0)
以下正则表达式应该起作用:
^\s*package\s*\w+\s*(?:\.\s*\w+\s*)*;\s*$
请注意,在包声明的各个部分之间具有多个空格是有效的Java:
package java . util ;
正则表达式允许这样做。如果出于某种原因而不想这样做,则此正则表达式可以解决问题:
^package \w+(\.\w+)*;$