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