在Java中,有没有办法使用indexOf()
或lastIndexOf()
与内部正则表达式表达式,就像在replaceAll()
中使用的那样code>,找出与字符串中的正则表达式匹配的索引(字符的第一个和最后一个索引)?
最佳答案
例如,这是一个正则表达式模式,它可以找到彼此相邻的 3 个“w”。
m.find()
尝试查找匹配项,如果成功则返回 true。
通过在每个 m.find()
之后使用 m.start()
,您可以获得找到的匹配项的第一个索引,并通过 m.end()
> 你得到找到的匹配的最后一个索引
Pattern p = Pattern.compile("w{3}");
Matcher m = p.matcher("www lskjdflkj www sdflkjslkjlk fsdlkfjww lksjfkjwww sldklk wwwlskjdflkjwwwlkjlj lkj");
while(m.find())
{
System.out.println("start index:"+m.start()+", end index:"+m.end());
}
输出:
start index:0, end index:3
start index:14, end index:17
start index:48, end index:51
start index:59, end index:62
start index:71, end index:74
您可以将找到的索引存储在 HashMap 或其他内容中以供以后使用(如果需要)
关于java - 在indexOf和lastIndexOf中使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030534/