我正在将一个文件的某些内容与正则表达式匹配并从中获取组。我怎样才能得到每个匹配组的开始和结束位置? 需要位置替换那些部分 有什么建议吗?Java中一个模式的每个匹配器组的索引
-4
A
回答
0
,您可以直接与replaceAll function更换您所需的内容:
此方法替换此字符串与给定替换给定的正则表达式匹配的每个子字符串。
然后,你可以用它喜欢:
replaceAll("[0-9]", "X");
希望它可以帮助你!
1
下面的代码打印匹配正则表达式和文本中的起始和结束位置的文本:
String text = "a long text regex to match";
Matcher m = Pattern.compile("regex").matcher(text);
while (m.find()){
String found = m.group();
System.out.println(found + " " + m.start() + " " + m.end());
}
0
您正在寻找方法m.start(int groupId)
和m.end(int groupId)
Java文档: 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")
。通过这种方式,当您更改输入文本或添加/删除某些组时,您的组名称将保持不变。 :)
相关问题
- 1. 为每个索引指定值匹配
- 2. 正则表达式 - 引用搜索中的第一个匹配
- 3. 值匹配一个数组中的多个值,但与数组索引
- 4. 添加一个唯一的ID到文件中的每个匹配模式
- 5. java模式和匹配器
- 6. Java模式/匹配器
- 7. java:找到一个模式的整个匹配
- 8. 模式/匹配器Java,非零组计数但错误检索?
- 9. 一个真正的索引--- perl中的多个匹配
- 10. 与多个匹配匹配的模式
- 11. jQuery通过索引访问'.find'中的每个匹配元素
- 12. 与组匹配的Java模式
- 13. 的Java:让每一个正则表达式匹配的字符串数组
- 14. JavaScript匹配一个数组的片段并返回索引值
- 15. 你能模式匹配elixir中的一个非空数组吗?
- 16. Stream方式获取第一个元素匹配的索引boolean
- 17. 检索另一个阵列中匹配点的索引
- 18. 用sed打印每个匹配模式的第一行
- 19. 如何比较两个数组的每个索引处的内容并返回匹配索引
- 20. 模式匹配在一个文件中
- 21. 获取与模式匹配的第一行的索引
- 22. 模式和匹配器的Java问题
- 23. Java的模式匹配器逗号
- 24. Java模式匹配器单个或多个用逗号分隔
- 25. 在同一索引处使用两个感应类型值匹配的模式
- 26. 的Java模式多匹配
- 27. 查找两个numpy数组中匹配行的索引
- 28. 查找两个数组中的索引匹配
- 29. 匹配器查找第n个匹配索引
- 30. Java模式匹配:第一级的Parangheses
你能提供一些例子,像这样没有人能理解你 –
你不需要这些职位,你的方法是一个黑客的东西。 'String#replaceAll()'可能可以做你想到的。 –