Сопоставьте строку с запятой в середине с регулярным выражением - PullRequest
0 голосов
/ 24 июня 2018

Я хочу попробовать регулярное выражение для сопоставления моей строки такого типа, как

if (cadena.matches("[0-9],[0-9]")){

    Do something} //this being like if the string has numbers before and after the comma

Каким образом я могу поставить это условие?Пример ввода для совпадения может быть cadena = "2,2345"

Я пытался ". \ d +, \ d +. " и ". [0-9], [0-9]. «Я пытался использовать свою последнюю попытку с« [0-9] +, [0-9] + », это говорит о том, что все больше чисел, и, кажется, работает

Использование последней решенной проблемымой вопрос, извините за усилия.

1 Ответ

0 голосов
/ 24 июня 2018

метод match (regex) совпадает со всей строкой.

Вы можете изменить шаблон для соответствия всей строке.

 if (cadena.matches(".*[0-9],[0-9].*")){
      // Do Something
 }

Или вы можете использовать find, чтобы найти числономер запятой в любом месте строки:

 Pattern pattern = Pattern.compile("[0-9],[0-9]");
 if (pattern.matcher(cadena).find()){
      // Do Something
 }

Если вы действительно хотите использовать числа, которые соответствуют обеим сторонам запятой в вашем блоке if, вы можете использовать () для захвата групп и ссылки на них с помощью Matcher.

    String cadena = "2,2345";
    Pattern pattern2 = Pattern.compile("([0-9]+),([0-9]+)");
    Matcher matcher = pattern2.matcher(cadena);
    if (matcher.find()){
        System.out.println("Found " + matcher.group(1) + " - " + matcher.group(2));
    }

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