用于OR两个范围正则表达式的正则表达式

时间:2016-02-26 01:42:43

标签: java regex

我需要一个正则表达式,用于出现0到7个字母或0到7个数字。

例如:匹配:1234asdbs

不匹配:123456789absbsafsfsfasf12

我尝试了([a-zA-Z]{0,7})|([0-9]{0,7}),但这不起作用。 我哪里错了?

4 个答案:

答案 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