Подтвердить что ты не робот

Может ли Java String.indexOf() обрабатывать регулярное выражение как параметр?

Я хочу захватить индекс определенного регулярного выражения в Java String. Эта строка может быть заключена в одинарные или двойные кавычки (иногда без кавычек). Как я могу захватить этот индекс с помощью Java?

например:

capture String -->  class = ('|"|)word('|"|)
4b9b3361

Ответ 1

Нет.

Проверить исходный код для проверки

WorkAround: Это не стандартная практика, но вы можете получить результат с помощью этого.

Update:

    CharSequence inputStr = "abcabcab283c";
    String patternStr = "[1-9]{3}";
    Pattern pattern = Pattern.compile(patternStr);
    Matcher matcher = pattern.matcher(inputStr);
    if(matcher.find()){

    System.out.println(matcher.start());//this will give you index
    }

ИЛИ

Regex r = new Regex("YOURREGEX");

// search for a match within a string
r.search("YOUR STRING YOUR STRING");

if(r.didMatch()){
// Prints "true" -- r.didMatch() is a boolean function
// that tells us whether the last search was successful
// in finding a pattern.
// r.left() returns left String , string before the matched pattern 
int index = r.left().length();
} 

Ответ 2

Это двухэтапный подход. Сначала найдите соответствие для вашего шаблона, затем (второе) используйте Matcher#start, чтобы получить позицию соответствующей строки в содержимом String.

Pattern p = Pattern.compile(myMagicPattern);  // insert your pattern here
Matcher m = p.matcher(contentString);
if (m.find()) {
   int position = m.start();
}