java - 在indexOf和lastIndexOf中使用正则表达式

标签 java regex indexof lastindexof

在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/

相关文章:

java - 关于 (""的索引)

java - Java 集合框架中接口(interface)方法的实现发生在哪里?

java - 使用正则表达式解析街道地址

regex - 珀尔 : How to replace a _[0-9] with a comma in perl or any language

javascript - 可以在字符串上使用 for in 循环吗?

arrays - Swift:在调用 indexOf 时无法将类型的值转换为 @noescape,在使用过滤函数进行过滤之后

plugins - 为小程序使用特定的 jre

java - RxJava Observable/Flowable 上的运算符延迟 n 个项目的发射

java - 如何在Java中创建带有小数的方程?

C# 获取两个相同字符之间的值