Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式:数值范围java_Java_Regex - Fatal编程技术网

正则表达式:数值范围java

正则表达式:数值范围java,java,regex,Java,Regex,我有一个小生成器,它允许我从正则表达式中创建一个字符串。对于像德国车牌这样的东西,这是很容易做到的。 ([A-Z]{1,3}[-][A-Z]{1,2}[0-9]{1,4})->例如“CD-B802” 公共字符串生成(){ 字符串forReturn=null; for(字符串规则:Generator.read(fileRegexConfig)){ 试一试{ Xeger生成器=新的Xeger(规则); forReturn=generator.generate(); }捕获(例外e){ System.

我有一个小生成器,它允许我从正则表达式中创建一个字符串。对于像德国车牌这样的东西,这是很容易做到的。 ([A-Z]{1,3}[-][A-Z]{1,2}[0-9]{1,4})->例如“CD-B802”

公共字符串生成(){
字符串forReturn=null;
for(字符串规则:Generator.read(fileRegexConfig)){
试一试{
Xeger生成器=新的Xeger(规则);
forReturn=generator.generate();
}捕获(例外e){
System.err.println(规则+':'+e.getMessage());
}
}
以回报换回报;
}
公共静态字符串[]读取(字符串str){
列表=新的ArrayList();
试一试{
BufferedReader in=new BufferedReader(new FileReader(str));
字符串zeile=null;
而((zeile=in.readLine())!=null){
如果(zeile!=null&&zeile.trim().length()>0)
列表。添加(zeile);
}
in.close();
}捕获(例外e){
e、 printStackTrace();
}
return(String[])list.toArray(新字符串[0]);
}
我的问题是,如何为int范围构建正则表达式。例如,我试图找到一种方法来描述一个有效区域,如[37-78]

据了解,描述[0-x]很容易,但我找不到解决问题的方法。

可以帮助您:


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

+1谢谢sp00m,我不知道这个网站。我相信Jan的RegexMagic也能做到这一点,但这是免费的,界面也很棒
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]);
}