正则表达式验证字符串

时间:2014-12-18 11:17:08

标签: java regex

我正在尝试使用正则表达式来验证字符串。

RegEx:  "Coord=\\(.*\\);?"

问题:我无法找到以下输入和预期输出的注册表

1. Input:  Coord=(1,1)  -- Expected output: True
2. Input:  Coord=(1,1);  -- Expected output: True
3. Input:  Coord=(1,1):  -- Expected output: False
4. Input:  Coord=(1,1)abc  -- Expected output: False
5. Input:  Coord=(1,1);abc  -- Expected output: True

任何想法

1 个答案:

答案 0 :(得分:2)

您可以在输入结尾处替换";"以达到目标:

String[] inputs = {
        "Coord=(1,1)",// -- Expected output: True
        "Coord=(1,1);",// -- Expected output: True
        "Coord=(1,1):",// -- Expected output: False
        "Coord=(1,1)abc",// -- Expected output: False
        "Coord=(1,1);abc"// -- Expected output: True
};
//                                              | this is the important bit
Pattern p = Pattern.compile("Coord=\\(\\d,\\d\\)(;|$)");
for (String input: inputs) {
    Matcher m = p.matcher(input);
    System.out.printf("%s found? %b%n", input, m.find());
}

<强>输出

Coord=(1,1) found? true
Coord=(1,1); found? true
Coord=(1,1): found? false
Coord=(1,1)abc found? false
Coord=(1,1);abc found? true