我正在将一个文件的某些内容与正则表达式进行匹配并从中获取组。如何获得每个匹配组的开始和结束位置? 需要位置来替换这些部件 有什么建议吗?
答案 0 :(得分:1)
以下代码打印与正则表达式匹配的文本以及文本中的开始和结束位置:
kcov
答案 1 :(得分:0)
您可以使用replaceAll function直接替换所需内容:
此方法将此字符串的每个子字符串替换为给定的正则表达式与给定的替换。
然后,您可以像:
一样使用它replaceAll("[0-9]", "X");
希望它可以帮到你!
答案 2 :(得分:0)
您正在寻找方法m.start(int groupId)
和m.end(int groupId)
Java Docs: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#start(int)
在这种情况下,我会考虑使用命名捕获组(?<GROUP-NAME>YOUR_REGEX)
和方法m.start("GROUP-NAME")
和m.end("GROUP-NAME")
。这样,当您更改输入文本或添加/删除某些组时,您的组名保持不变。 :)