Java toUpperCase () и проблема RegExp - PullRequest
0 голосов
/ 25 августа 2011

Хорошо, у меня есть строка, которую я анализирую, и мне нужно использовать toUpperCase () для этой строки. После этого я использую Java RegExp. Проблема в том, что по какой-то причине Java-функция String toUpperCase () изменяет пробелы, и мой RegExp не будет работать.

Есть ли способ сказать toUpperCase () игнорировать пробелы? Или, возможно, это можно обработать в RegExp?

Ниже приведен код, который я использую, чтобы понять это. Если я раскомментирую строку toUpperCase () ниже, мой RegExp не будет работать !!

    String regExp = "([t][o][k][e][n][\\s]*[=][\\s]*)";
    String content = "The token ='testing'" ;

    //content = content.toUpperCase();  //uncomment this and RegExp will break!!!

    Pattern pattern = Pattern.compile(regExp);
    Matcher matcher = pattern.matcher(content);

    if(matcher.find()){
        int startIndex= matcher.start(1);
        int endIndex = matcher.end(1);

        String posStartExpression = content.substring(startIndex,endIndex);
        System.out.println(posStartExpression);
    }

1 Ответ

3 голосов
/ 25 августа 2011

Вы сталкиваетесь с таким поведением, потому что ваше регулярное выражение чувствительно к регистру.

Попробуйте это:

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