简体   繁体   English

正则表达式:数字范围 java

[英]Regex: Numeric Range java

I have a little generator which allows me to create a string out of a regex-expression.我有一个小生成器,它允许我从正则表达式中创建一个字符串。 For something like a German license plate it is pretty easy to do.对于像德国车牌这样的东西,这很容易做到。 ([AZ]{1,3}[- ][AZ]{1,2}[0-9]{1,4}) -> eg "CD-B802" ([AZ]{1,3}[- ][AZ]{1,2}[0-9]{1,4}) -> 例如“CD-B802”

public String generate() {
    String forReturn = null;
    for (String rule : Generator.read(fileRegexConfig)) {
        try {
            Xeger generator = new Xeger(rule);
            forReturn  = generator.generate();
        } catch (Exception e) {
            System.err.println(rule + ':' + e.getMessage());
        }
    }
    return forReturn;
}

public static String[] read(String str) {
    List<String> list = new ArrayList<String>();
    try {
        BufferedReader in = new BufferedReader(new FileReader(str));
        String zeile = null;
        while ((zeile = in.readLine()) != null) {
            if (zeile != null && zeile.trim().length() > 0)
                list.add(zeile);
        }
        in.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return (String[]) list.toArray(new String[0]);
}

The Problem I have is, how can I build a regex for a range of int.我遇到的问题是,如何为一系列 int 构建正则表达式。 For example I try to find a way to describe an area of validity like [37-78].例如,我试图找到一种方法来描述像 [37-78] 这样的有效领域。

according to http://www.regular-expressions.info/numericranges.html it is easy to describe [0-x] but I can't find a way to solve my problem.根据http://www.regular-expressions.info/numericranges.html描述 [0-x] 很容易,但我找不到解决问题的方法。

RegexForRange could help you: RegexForRange可以帮助您:

To match the range [37;78]: (3[7-9]|[4-6][0-9]|7[0-8])匹配范围 [37;78]: (3[7-9]|[4-6][0-9]|7[0-8])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM