我的字符串模式是
"hbfj-nbsp-nbsp-wsefj-f-ejsf-sdfh-sjkf-df-sdjfk-sdfhb-jdgh-nbsp-djg-hdr"
我尝试了这种模式"(\\w+)-(\\w+)-(\\w+)-(\\w+)"
,但它提供了完全匹配。必需匹配0到3次"hbfj-"
这些类型的字符串。
答案 0 :(得分:2)
尝试使用此正则表达式:string.matches("^(\\w+(-|$)){0,3}$")
答案 1 :(得分:1)
我想你要提取第一个连字符分隔的单词(最多4个):
String words = str.replaceAll("^(\\w+(-\\w){0,3})?.*", "$1");
如果找不到合适的话,这将返回空白。