比较麻烦
a*b*c*d*e*.....z*
如果是大小写都有就这样
[aA]*[bB]*....[zZ]*
如果字母不能空缺就吧*改成+
a*b*c*d*e*.....z*
如果是大小写都有就这样
[aA]*[bB]*....[zZ]*
如果字母不能空缺就吧*改成+
解决方案 »
- RandomAccessFile把字符串写入文本文档是乱码,怎么办?
- 关于input和output紧急求助
- 请教一个小问题
- 边界布局管理器南北排不了,请高手帮帮忙!
- windows2000安装globe7出现 WARNING: Default charset GBK not supported, using ISO-8859-1 instead
- 这句信息是什么意思?
- Win2k 下Java SDK 1.4的问题
- 如何取得ORACLE中的SYNONYMS信息?
- 请问JAVA如何读写注册表
- 想要java图书的请进来
- 使用tomcat连接池时候,能否判断出已连接的数目,并对其进行释放?
- JCreator的一个问题
这样不行的,我要的是相邻两个字符相同的字符串。
sorry
我看错了
正则表达式应该可以用来判断给定字符串是否符合要求。所以
我是想用正则表达式来表示相邻两个字符是一样的字符串。比如说aa,bb,cc,dd等等,也就是用一个通用表达式来表示。当我输入的字符串是aa,或者bb或者cc时,应该用怎样的通用的正则表达式来进行判断该字符串就是满足其中的两个字符是相同的?
当然可以枚举,如[aa|bb|cc|dd]来实现,但是若有10种或更多的可能字符的话,这个方法就不可行了。
我也知道单纯两个字符的字符串表示很简单,[a-z][a-z],但是这样的话,不能保证两个字符相同。
不知道这样说,大家是否能明白一些了?
ae
其中a的取值为[A-Z],e的含义是:和前面的单字符相同的字符。
也就是说e表示的是和前者的关系。
这样的表示能否转化成正则表达式来表达?
如果字符串只有两个相同的字符可以这样表示.
(aa)?(bb)?(cc)?..........(zz)?
如果有多个可以这样表示
a*b*c*...............z*
其中.............不是正则表达式符号,是语文里的省略号.
"cabaabb"这种它也会是true
"aa"、"aaaa"是true
但"aabb"、"aaaaa"就是false了
public static void main( String[] args ){
String str1 = "aabb,cc,dd";
String str2 = "aa,bb,cc";
String str3 = "aabb,cd,dd";
String str4 = "ac,be,cc";
// 如果是第一种形式的就用这个
String regeStr1 = "(([a-z])\\2)*(,(([a-z])\\5)*)*";
// 如果是第二种形式的就用这个
String regeStr2 = "([a-z])\\1(,([a-z])\\3)*";
System.out.println( str1.matches( regeStr1 ) );
System.out.println( str2.matches( regeStr2 ) );
System.out.println( str3.matches( regeStr1 ) );
System.out.println( str4.matches( regeStr2 ) );
}
}
第一种形式指
String str1 = "aabb,cc,dd";
就是可以由连着的不同的双字符
第二种形式指
String str2 = "aa,bb,cc";
([\w])\1+[,]*
如果加上升序要求的话,我想一次性得到结果已经超出正则表达式的范围了,
也许判断格式正确后分解为一段一段来进行判断是比较容易的方法.