JAVA中的package的正确与否的检查

wumengs 2007-11-08 07:03:54
package XXXX.YYYYYYYY.ZZZZZZ;
现在的要求是: XXXX.YYYYYYYY.ZZZZZZ 这个表达式分成用点分隔的字符串,对于每个字符串来说:
第一个字符是:"$,_,a-z,A-Z" 其它字符是前面的情况加上:0-9
其中,上面的字符串可以有任意多个,也就是说,点的个数是不确定的.
在线等待...
...全文
191 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdd330 2007-11-12
  • 打赏
  • 举报
回复
你给的例子
A12aaSa.C5Zbb.ccc
_Aa5aSa.CZbb.ccc
用正则表达式
(\w+\.)*([_a-zA-Z]+)

你可以用RegexBuddy测试一下.
RegexBuddy里面有很多英文版的文档是正则表达式很好的参考资料

RegexBuddy没有的话可以到我站点上去下载
http://www.jleilei.com/soft.html



mysoko 2007-11-12
  • 打赏
  • 举报
回复
public static void main(String [] args){System.out.println("test");}
jk88811 2007-11-12
  • 打赏
  • 举报
回复
正则好啊

wumengs 2007-11-12
  • 打赏
  • 举报
回复
结帐,我用程序的循环作好了.不用正则了.主要是客户反映不好维护.所以用循环作了.
sdd330 2007-11-09
  • 打赏
  • 举报
回复
^[\$_a-zA-Z]+([\$\w]+)*$
这个表达式有点问题,应该是这样
^([\$_a-zA-Z]+)(\.[\$\w]+)*$

[\$_a-zA-Z]+ 匹配$,_,a-z,A-Z 1次或多次
[\$\w]+ 匹配$,任意字母,数字或下划线 1次或多次
\.匹配字符. 1次
胡矣 2007-11-09
  • 打赏
  • 举报
回复
mark
lmx8757921 2007-11-09
  • 打赏
  • 举报
回复
非打印字符也可以是正则表达式的组成部分。下面列出了表示非打印字符的转义序列
\n 换行符匹配。
\r 匹配一个回车符。
\s 匹配任何空白字符,包括空格、制表符等。
\S 匹配任何非空白字符。
\t 制表符匹配。
正则表达式支持限定符的概念,用来指定构成匹配的字符的数量。这些限定符能够指定,为使匹配为真,正则表达式的某个给定字符或子表达式必须出现多少次。
下表说明各种限定符以及它们的含义:
* 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配 z 和 zoo。* 等效于 {0,}。
+ 一次或多次匹配前面的字符或子表达式。例如,zo+ 匹配 zo 和 zoo,但不匹配 z。 + 等效于 {1,}。
? 零次或一次匹配前面的字符或子表达式。例如,do(es)? 匹配 do 或 does 中的 do。 ? 等效于 {0,1}。
{n} n 是非负整数。正好匹配 n 次。例如,o{2} 不匹配 Bob 中的 o,但匹配 food 中的两个 o。
{n,} n 是非负整数。至少匹配 n 次。例如,o{2,} 不匹配 Bob 中的 o,而匹配 foooood 中的所有 o。o{1,} 等效于 o+。o{0,} 等效于 o*。
{n,m} n 和 m 是非负整数,其中 n <= m。至少匹配 n 次,至多匹配 m 次。例如,o{1,3} 匹配 fooooood 中的头三个 o。o{0,1} 等效于 o?。
lmx8757921 2007-11-09
  • 打赏
  • 举报
回复
普通字符包括没有被指定为特殊字符(元字符)的字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
如:a,Z,0,9,@,%
字符表达式用来在正则表达式中表示单个字符。
普通字符
转义字符
\xXX(X为16进制数) ASCII码。
\uXXXX(X为16进制数) Unicode码。
\d任意一个数字,0~9 中的任意一个。
\D 匹配所有的非数字字符。
\w任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个。
\W 匹配所有的字母、数字、下划线以外的字符。
[]方括号
使用方括号 [ ] 包含一系列字符,能够匹配其中任意一个字符。用 [^ ] 包含一系列字符,则能够匹配其中字符之外的任意一个字符。虽然可以匹配其中任意一个,但是只能是一个,不是多个。
方括号中可以使用[a-g]这种形式来表示从a到g这七个字符。-左右两边的字符属于连续的字符。如数字和字母。
lmx8757921 2007-11-09
  • 打赏
  • 举报
回复
规则很多.
特殊字符是正则表达式中用来表示特定意义的字符。包括以下:
. 匹配换行符 \n 之外的任何单个字符。若要匹配 .,请使用 \.。
^ 匹配输入字符串开始处的位置,但在中括号表达式中使用的情况除外,在那种情况下它对字符集求反。若要匹配 ^ 字符本身,请使用 \^。
$ 匹配输入字符串结尾的位置。若要匹配 $ 字符本身,请使用 \$。
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,字符 n 匹配字符n,\n 匹配换行符。序列 \\ 匹配 \,序列 \( 匹配 (。
* 零次或多次匹配前面的字符或子表达式。若要匹配 * 字符,请使用 \*。
+ 一次或多次匹配前面的字符或子表达式。若要匹配 + 字符,请使用 \+。
? 零次或一次匹配前面的字符或子表达式,若要匹配 ? 字符,请使用 \?。
( ) 标记子表达式的开始和结束。可以捕获子表达式以供以后使用。若要匹配这两个字符,请使用 \( 和 \)。
[ ] 标记中括号表达式的开始。若要匹配这些字符,请使用 \[ 和 \]。
{ } 标记限定符表达式的开始。若要匹配这些字符,请使用 \{ 和 \}。
| 指出在两个项之间进行选择。若要匹配 | ,请使用 \|
/ 表示文本正则表达式的开始或结束。若要匹配 / 字符,请使用 \/。
lmx8757921 2007-11-09
  • 打赏
  • 举报
回复
规则很多.
特殊字符是正则表达式中用来表示特定意义的字符。包括以下:
. 匹配换行符 \n 之外的任何单个字符。若要匹配 .,请使用 \.。
^ 匹配输入字符串开始处的位置,但在中括号表达式中使用的情况除外,在那种情况下它对字符集求反。若要匹配 ^ 字符本身,请使用 \^。
$ 匹配输入字符串结尾的位置。若要匹配 $ 字符本身,请使用 \$。
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,字符 n 匹配字符n,\n 匹配换行符。序列 \\ 匹配 \,序列 \( 匹配 (。
* 零次或多次匹配前面的字符或子表达式。若要匹配 * 字符,请使用 \*。
+ 一次或多次匹配前面的字符或子表达式。若要匹配 + 字符,请使用 \+。
? 零次或一次匹配前面的字符或子表达式,若要匹配 ? 字符,请使用 \?。
( ) 标记子表达式的开始和结束。可以捕获子表达式以供以后使用。若要匹配这两个字符,请使用 \( 和 \)。
[ ] 标记中括号表达式的开始。若要匹配这些字符,请使用 \[ 和 \]。
{ } 标记限定符表达式的开始。若要匹配这些字符,请使用 \{ 和 \}。
| 指出在两个项之间进行选择。若要匹配 | ,请使用 \|
/ 表示文本正则表达式的开始或结束。若要匹配 / 字符,请使用 \/。
wumengs 2007-11-09
  • 打赏
  • 举报
回复
"^[\$_a-zA-Z]+([\$\w]+)*$"
好象这样就对了.我自己试出来了.
另外,谁能讲一下正则表达的规则呀?
wumengs 2007-11-09
  • 打赏
  • 举报
回复
谢谢lmx8757921

谢谢sdd330 小飞羊
按lmx8757921 说的规则,我的表达式是有问题.但我测试您给的,下面的都不行.
(A12aaSa.C5Zbb.ccc)(_Aa5aSa.CZbb.ccc)这类当中因为有数字.
^([\$_a-zA-Z]+)(\.[\$\w]+)*$ 可能是第一个 + 造成的问题吧.
因为package名中的点是不固定的,但只要是出现点后,它后面的表达式就要符合:
第一个字符是: "$,_,a-z,A-Z " 其它字符是前面的情况加上:0-9
上面的规律.所以您看一下能不能再修改一下.
lihaifeng0412 2007-11-09
  • 打赏
  • 举报
回复
等待~~~~~~~学习
wumengs 2007-11-08
  • 打赏
  • 举报
回复
我试了一下,好象不行...
zealVampire 2007-11-08
  • 打赏
  • 举报
回复
1. 正则表达([$_a-zA-Z][$_a-zA-Z0-9]*.)*[$_a-zA-z][$_a-zA-Z0-9] 不知道写对没有。
2, String.indexOf('.') 慢慢用substring分割字符串,以.为间隔得到子串, 按条件判断嘛

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧