如何找到索引"租"表达式中的标记。 token包含任何字母数字和下划线。由任何符号分隔的标记。
String expr = "rent_office+eb+water+rent+eb_office";
租赁令牌应返回21索引。任何人都知道如何为此编写正则表达式以获得索引。
答案 0 :(得分:0)
像这样使用单词边界:\\brent\\b
答案 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
------------------------------
我希望这对你有所帮助。