我需要一个正则表达式,用于出现0到7个字母或0到7个数字。
例如:匹配:1234
,asdbs
不匹配:123456789
,absbsafsfsf
,asf12
我尝试了([a-zA-Z]{0,7})|([0-9]{0,7})
,但这不起作用。
我哪里错了?
答案 0 :(得分:1)
您使用的是OR错误。结构为(match1|match2)
,但您目前有(match1)|(match2)
您的正则表达式应为:([a-zA-Z]{0,7}|[0-9]{0,7})
答案 1 :(得分:1)
这样的事情应该这样做:^([a-zA-Z]{0,7}|[0-9]{0,7})$
答案 2 :(得分:0)
您可以试试.width()
:
.appendTo()
正则表达式Regex
包含所有字母和数字。
答案 3 :(得分:0)
您可以使用模式\b([a-zA-Z]{1,7}|[1-9]{1,7})\b
来匹配:
public static void main(String[] args) {
String input = "- 1234, asdbs 123456789, absbsafsfsf, asf12";
Pattern pattern = Pattern.compile("\\b([a-zA-Z]{1,7}|[1-9]{1,7})\\b");
Matcher matcher = pattern.matcher(input);
List<String> listMatches = new ArrayList<String>();
while(matcher.find())
{
listMatches.add(matcher.group(1));
}
for(String s : listMatches)
{
System.out.println(s);
}
}
输出:
1234
asdbs