Проблема соответствия REGEX - PullRequest
1 голос
/ 24 февраля 2011

Моя вводимая строка может быть в формате TIM0.VW0 (она всегда начинается с TIM или CNT или ENC, за которыми следуют цифры, затем всегда указывают и в конце символ или символы с цифрой в конце).Как узнать, совпадает ли моя строка ввода с регулярным выражением?

Ответы [ 4 ]

4 голосов
/ 24 февраля 2011

Что-то подобное может сделать:

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 голос
/ 24 февраля 2011

Сравните с:

^(TIM|CNT|ENC)[0-9]+\.[A-Z]+[0-9]$
0 голосов
/ 24 февраля 2011

Вы должны рассмотреть возможность использования этого:

^(TIM|ENC|CNT)\d+\.\w+\d+$
0 голосов
/ 24 февраля 2011

Вы можете попробовать это регулярное выражение: (TIM|CNT|ENC)\d+\.\w+\d

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...