REGEX匹配问题

时间:2011-02-24 08:38:16

标签: java regex

我输入的字符串可以是TIM0.VW0格式(它始终以TIM或CNT或ENC开头,后跟数字,然后始终指向最后一个字符或字符,结尾处有数字)。如何确定我输入的字符串是否与正则表达式匹配?

4 个答案:

答案 0 :(得分:4)

这样的事情可以做到:

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {

        String regexp = "(TIM|CNT|ENC)\\d+\\.\\p{Alpha}+\\d";

        for (String test : Arrays.asList("TIM0.VW0",  "TIM0.VW5", "TIM0.0",
                                         "TIM99.A5",  "CNT0VW0",  "ABC0.VW0",
                                         "-TIM0.VW0", "TIM9.8x",  "ENC0.55"))
            System.out.printf("%-10s: %s%n", test, test.matches(regexp));
    }
}

输出:

TIM0.VW0  : true
TIM0.VW5  : true
TIM0.0    : false
TIM99.A5  : true
CNT0VW0   : false
ABC0.VW0  : false
-TIM0.VW0 : false
TIM9.8x   : false
ENC0.55   : false

答案 1 :(得分:1)

与之匹配:

^(TIM|CNT|ENC)[0-9]+\.[A-Z]+[0-9]$

答案 2 :(得分:0)

您可以尝试使用此正则表达式:(TIM|CNT|ENC)\d+\.\w+\d

答案 3 :(得分:0)

你应该考虑使用它:

^(TIM|ENC|CNT)\d+\.\w+\d+$