Как сопоставить строку, содержащую [с последующим любым числом больше 0? - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь сопоставить строку, содержащую [, за которой следует число больше 0 .

Например, мой шаблон регулярного выражения должен соответствовать строкам типа:

Sample.3cb11b [1] .books.addressDetail.addrDetail2
Sample.3cb11b [28] .books.addressDetail.addrDetail2

и не должно совпадать

Sample.3cb11b [0] .books.addressDetail.addrDetail2

Я пробовал что-то вроде ".*\\[[1-9].*".

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Как насчет: .*\[0*[1-9][0-9]*\].*?

Простая тестовая программа:

    String[] lines = {
        "Sample.3cb11b[1].books.addressDetail.addrDetail2",
        "Sample.3cb11b[28].books.addressDetail.addrDetail2",
        "Sample.3cb11b[0].books.addressDetail.addrDetail2"};
    for (String line: lines) {
        System.out.println(line + ": "
                + line.matches(".*\\[0*[1-9][0-9]*\\].*"));
    }
0 голосов
/ 04 января 2019

Я попробовал это регулярное выражение, и оно работает:

^([a-zA-Z0-9]*).([0-9a-z]*)(\[[1-9][0-9]*?\])(.[a-zA-Z0-9]*){3}  // this is very exact, maybe too much

.*\[[1-9][0-9]*\].*  // this seems to also work, but only cares about the 'greater than 0' part 

Вот ссылка на тестер регулярных выражений .

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