如何在字符串表达式中找到indexof的索引?

时间:2014-10-08 11:10:25

标签: java regex

如何找到索引"租"表达式中的标记。 token包含任何字母数字和下划线。由任何符号分隔的标记。

String expr = "rent_office+eb+water+rent+eb_office";

租赁令牌应返回21索引。任何人都知道如何为此编写正则表达式以获得索引。

2 个答案:

答案 0 :(得分:0)

像这样使用单词边界:\\brent\\b

demo here

答案 1 :(得分:0)

正如您在问题中所提到的,令牌包含字母,数字和下划线。要在令牌中断开给定的字符串,可以使用^[\w\d_]+正则表达式。使用下面的java代码,您可以匹配您的令牌并找到令牌的索引,该索引将是您所期望的21。

public static void main(String[] args) throws Exception {
    String expr = "rent_office+eb+water+rent+eb_office";
    Pattern pattern = Pattern.compile("[\\w\\d_]+");
    Matcher matcher = pattern.matcher(expr);
    while (matcher.find()) {
        if (matcher.group().equals("rent")) {
            System.out.println("start index : " + matcher.start());
            System.out.println("end index : " + matcher.end());
            System.out.println("string : " + matcher.group());
            System.out.println("------------------------------");
        }
    }
}

这是输出:

start index : 21
end index : 25
string : rent
------------------------------

我希望这对你有所帮助。