猿问

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

我想在字符串中搜索特定模式。

正则表达式类是否提供模式在字符串中的位置(字符串中的索引)?
模式的出现次数可能超过1。
有实际的例子吗?


牧羊人nacy
浏览 830回答 3
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};}

小怪兽爱吃肉

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 QT300Found value: 0
随时随地看视频慕课网APP
我要回答