import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
// 示例输入
String name = "test-name"; // 可以是任何字符串,不考虑特殊字符问题
String text = "This is a test-name in the text. AnotherTest-name and test-name-end.";
// 构造正则表达式
// (?<![a-zA-Z-]) 确保前面不是字母或连字符
// (?![a-zA-Z-]) 确保后面不是字母或连字符
String regex = "(?<![a-zA-Z-])" + Pattern.quote(name) + "(?![a-zA-Z-])";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
// 查找并处理匹配项
while (matcher.find()) {
// 获取匹配的起始位置
int startIndex = matcher.start();
// 结束位置:开始位置加上子串长度
int endIndex = matcher.end();
System.out.println("Found match: " + text.substring(startIndex, endIndex));
System.out.println("Start Index: " + startIndex);
System.out.println("End Index: " + endIndex);
}
}
}