为了账号安全,请及时绑定邮箱和手机立即绑定

使用正则表达式获取字符串中模式的索引

使用正则表达式获取字符串中模式的索引

牧羊人nacy 2019-11-29 14:46:47
我想在字符串中搜索特定模式。正则表达式类是否提供模式在字符串中的位置(字符串中的索引)?模式的出现次数可能超过1。有实际的例子吗?
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

Jean Logeart的特别版答案


public static int[] regExIndex(String pattern, String text, Integer fromIndex){

    Matcher matcher = Pattern.compile(pattern).matcher(text);

    if ( ( fromIndex != null && matcher.find(fromIndex) ) || matcher.find()) {

        return new int[]{matcher.start(), matcher.end()};

    }

    return new int[]{-1, -1};

}


查看完整回答
反对 回复 2019-11-29
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

import java.util.regex.Matcher;

import java.util.regex.Pattern;


public class RegexMatches

{

    public static void main( String args[] ){


      // String to be scanned to find the pattern.

      String line = "This order was places for QT3000! OK?";

      String pattern = "(.*)(\\d+)(.*)";


      // Create a Pattern object

      Pattern r = Pattern.compile(pattern);


      // Now create matcher object.

      Matcher m = r.matcher(line);

      if (m.find( )) {

         System.out.println("Found value: " + m.group(0) );

         System.out.println("Found value: " + m.group(1) );

         System.out.println("Found value: " + m.group(2) );

      } else {

         System.out.println("NO MATCH");

      }

   }

}

结果


Found value: This order was places for QT3000! OK?

Found value: This order was places for QT300

Found value: 0


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 829 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信