regex 如何获得前视/后视位置?

ibrsph3r  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(106)

我想获取Lookahead/Lookbehind位置。例如:

String text = "one two three";
String pattern = "(?<=two )three";
Matcher m = pattern.matcher(text);
while(m.find()){
 System.out.println(m.start() + " - " + m.end())
}

输出为“8 - 13”,但我需要获取lookbehind(“two”)开始的位置:“4 - 13”,可能吗?

myzjeezk

myzjeezk1#

有一种更简单的方法可以做到这一点,它避免了正则表达式,而是使用基本字符串函数:

String text = "one two three";
String sub = "two three";
int start = text.indexOf(sub);
int end = start + sub.length();
System.out.println(start + " - " + end);  // 4 - 13

相关问题