用于NUMERIC(p,s)p = precision和s = scale

时间:2019-02-11 06:27:31

标签: java regex

想要NUMERIC(p,s)NUMERIC的正则表达式将一直存在,我只想检查括号中我的值是否用逗号分隔。例如NUMERIC(10,20),因此我的正则表达式还将包含“ NUMERIC(”,并用逗号检查数字和“)”

我曾尝试进行逗号检查,但无法在正则表达式中获取带有“(”和“)”的NUMERIC。

我尝试使用“ ^ NUMERIC \([0-9] +(,[0-9] +)*”

public static void main(String[] args) {
                String regex="^NUMERIC\\([0-9]+(,[0-9]+)*"
        String v="NUMERIC(1,2)";
        System.out.println(v.matches(regex));
    }

预期结果是正则表达式,它将使我对“ NUMERIC(”和“)”中的任何逗号分隔数字值都为真

2 个答案:

答案 0 :(得分:2)

$video = 'one.mp4'; $filenum = basename($video, '.mp4'); $videodir = '/home/some/path/'; $thumbs = glob("{$videodir}{$filenum}thumb*.jpg"); $thumbs = array_map('basename', $thumbs); print_r($thumbs); 期望 entire 字符串匹配,并且您的正则表达式不包含右括号的标记。

如果始终有两个值.matches()p,则应使用类似的

s

如果第二个参数是可选的:

public static void main(String[] args) {
                String regex="NUMERIC\\([0-9]+,[0-9]+\\)"
        String v="NUMERIC(1,2)";
        System.out.println(v.matches(regex));
    }

另请参阅Difference between matches() and find() in Java Regex

答案 1 :(得分:0)

使用此常规exp。

^NUMERIC\([0-9]+(,[0-9]\){1})

我刚刚修改了你的