正则表达式求助、关于重复字符组的判断。
java语言里面关于重复字符组的判断。比如,我想测试出javava、ohahahae,OHnonononogod、这种中间某段字符串重复的类型。但是,程序不知道到底是什么...
java语言里面关于重复字符组的判断。
比如,我想测试出
javava、ohahahae,OHnonononogod、这种中间某段字符串重复的类型。
但是,程序不知道到底是什么重复。
想要达成的结果。
1,获取重复的字符。
2,获取重复的次数。
3,获取重复的位置。
虽然使用java代码可可以实现,但是,能给我个正则的代码么? 展开
比如,我想测试出
javava、ohahahae,OHnonononogod、这种中间某段字符串重复的类型。
但是,程序不知道到底是什么重复。
想要达成的结果。
1,获取重复的字符。
2,获取重复的次数。
3,获取重复的位置。
虽然使用java代码可可以实现,但是,能给我个正则的代码么? 展开
2个回答
展开全部
正则表达式可以判断出重复的字符,但是无法给出重复的次数和重复位置,所以还需要自己来编程解决
完整的Java程序如下
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class AA {
public static void main(String[] args) {
String str="OHnonononogod";
String regex="([A-Za-z]+?)\\1+";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
while(m.find()){
String duplicate=m.group(1);
int times=0,start=0,po;
while((po=str.indexOf(duplicate,start))!=-1){
start=po+duplicate.length();
times++;
}
int position=str.indexOf(m.group(0));
System.out.println(str);
System.out.println("重复的字符:"+duplicate);
System.out.println("重复的次数:"+times);
System.out.println("重复的位置:"+(position+1)+"-"+start);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询