Как взять число из регулярного выражения и передать его для соответствия определенному тексту? - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть следующее регулярное выражение [A-Za-z0-9!@#$?]+=(\d+)<<, и я должен сопоставить любой текст после << с длиной числа, указанного в первой группе захвата? Не могли бы вы помочь мне, оцените это :)

1 Ответ

0 голосов
/ 14 апреля 2019

Если вы используете этот RegEx "(\ d +) << (\ d +)", вы можете использовать группы захвата 1 и 2 для логики своей программы. Вот пример: </p>

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class MainApp {

public static void main(String[] args) {

    String[] searchMe = {"3<<123", "2<<123", "4<<1234", "4<<123"};  
    //indexes 0 and 2 should pass the test 

    String regExPattern = "(\\d+)<<(\\d+)";

    Pattern p = Pattern.compile( regExPattern );

    for(String x : searchMe){
            Matcher m = p.matcher( x );
            boolean b = m.matches();

            if(b)
            {
                int numLen = Integer.parseInt(m.group(1));
                String group2 = m.group(2);
                if(group2.length()  == numLen ){
                    System.out.println(x);
                }
            }



            }
    }

    }

Моя консоль распечатывает:

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