Java:查找第一个正则表达式的索引

我需要更改一段包含以下内容的代码:

string.indexOf("bc")

如果跳过以“ a”开头的字母“ bc”的出现,该如何更改呢?

我不想找到这些:

abc

但是只有:

xbc

其中x可以是a(甚至是空)。

我认为我可以将条件设​​置为检查索引i-1 == a,如果为true,则再次调用indexOf方法。但是我认为这不会产生非常漂亮的代码。

使用正则表达式的解决方案会是什么样子?

编辑:看到一些回应后只是一个提示。不仅要获取正则表达式,而且还要获得所需的API调用以查找索引,这将是很好的。

回答:

根据要求提供更完整的解决方案:

    /** @return index of pattern in s or -1, if not found */

public static int indexOf(Pattern pattern, String s) {

Matcher matcher = pattern.matcher(s);

return matcher.find() ? matcher.start() : -1;

}

呼叫:

int index = indexOf(Pattern.compile("(?<!a)bc"), "abc xbc");

以上是 Java:查找第一个正则表达式的索引 的全部内容, 来源链接: utcz.com/qa/399958.html

回到顶部