我有一个 Java 程序,如果它包含超过 5 次的连字符,它应该匹配一个字符串:hello-hi-contains-more-than-five-hyphen单词可以包含任何常规字符。此示例中的正则表达式不应匹配:hi-hello-233-here-example我试着写一个这样的正则表达式:.*-{6,}.*但它不起作用。
3 回答
动漫人物
TA贡献1815条经验 获得超10个赞
这里不需要昂贵的正则表达式,一个简单的split就 length可以了,即:
String subjectString = "hello-hi-contains-more-than-five-hyphen";
String[] splitArray = subjectString.split("-");
if(splitArray.length > 5){
System.out.println(subjectString);
}
阿波罗的战车
TA贡献1862条经验 获得超6个赞
"...".matches("(?s)([^-]*-){6}.*")(?s)dot-all,.也将匹配行分隔符,如\randn。group
( ), 6 次{6}, 任意 char.0 次以上*字符集
[]不^包含-0 次或更多次的组*,然后是-
因为matches正则表达式必须覆盖整个字符串,所以^(start) 和$(end) 已经隐含。(因此需要.*)
添加回答
举报
0/150
提交
取消
