java怎么获取用正则表达式匹配的字符串在原字符串的位置
时间: 2024-01-29 12:03:14 浏览: 28
在 Java 中,可以使用 Matcher 类的 start() 和 end() 方法来获取正则表达式匹配的字符串在原字符串中的位置。下面是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
String input = "Hello, world!";
String pattern = "\\b\\w+\\b";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
while (m.find()) {
String match = m.group();
int start = m.start();
int end = m.end();
System.out.printf("Match: %s, start: %d, end: %d\n", match, start, end);
}
}
}
```
在上面的代码中,我们使用正则表达式 `\b\w+\b` 来匹配单词,然后使用 Matcher 类的 start() 和 end() 方法来获取匹配的单词在原字符串中的起始位置和结束位置。输出结果如下:
```
Match: Hello, start: 0, end: 5
Match: world, start: 7, end: 12
```
可以看到,正则表达式匹配的字符串 "Hello" 的起始位置是 0,结束位置是 5;匹配的字符串 "world" 的起始位置是 7,结束位置是 12。