Я хочу найти, если строка начинается с одного символа (между 1 и 9 вхождениями) и вторым символом (между 1 и 9 вхождениями тоже), но их сумма появления должна быть (точно) 10, общая сумма должна быть 10. Номер первого символа + Номер второго символа = 10.
Я хочу знать, возможно ли это сделать за один раз, или если это невозможно: если я должен сделать это за 2 раза.
Мой первый символ - пробел: "\ s" Мой второй символ - число, но не 0: [1-9] [0-9] *
Но вы можете объяснить это с помощью символа a и b, я адаптирую его после.
String w = " 1" //ok
String x = " 123456789" //ok
String z = " 123456789" //must be not ok (11 char)
String y = " 123456789" //must be not ok
Pattern my_pattern = patter.compile("^\\s+[1-9][0-9]*");
Pattern my_pattern2 = patter.compile("^\\s{1,9}[1-9][0-9]{1,9}");
my_pattern не годится, он допустил слишком много паттернов.
my_pattern2 сделал ограничение на количество пробелов и число ди git, но не на сумму, как я могу это сделать?
Решение состоит в том, чтобы написать 9 вариантов, как это:
Pattern my_pattern3 = patter.compile("(a{1}b{9}|a{2}b{8}|a{3}b{7}|etc)");
но я бы предпочел общее решение, если оно у вас есть.
Спасибо за внимание