Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中模式的每个匹配器组的索引_Java_Regex_String - Fatal编程技术网

Java中模式的每个匹配器组的索引

Java中模式的每个匹配器组的索引,java,regex,string,Java,Regex,String,我将文件的某些内容与正则表达式进行匹配,并从中获取组。如何获得每个匹配组的起始位置和结束位置? 需要更换这些零件的位置 有什么建议吗?您可以直接将所需内容替换为: 此方法使用给定替换替换替换与给定正则表达式匹配的该字符串的每个子字符串 然后,您可以像这样使用它: replaceAll("[0-9]", "X"); 希望它能帮助你 您可以直接将所需内容替换为: 此方法使用给定替换替换替换与给定正则表达式匹配的该字符串的每个子字符串 然后,您可以像这样使用它: replaceAll("[0-9]"

我将文件的某些内容与正则表达式进行匹配,并从中获取组。如何获得每个匹配组的起始位置和结束位置? 需要更换这些零件的位置
有什么建议吗?

您可以直接将所需内容替换为:

此方法使用给定替换替换替换与给定正则表达式匹配的该字符串的每个子字符串

然后,您可以像这样使用它:

replaceAll("[0-9]", "X");

希望它能帮助你

您可以直接将所需内容替换为:

此方法使用给定替换替换替换与给定正则表达式匹配的该字符串的每个子字符串

然后,您可以像这样使用它:

replaceAll("[0-9]", "X");

希望它能帮助你

以下代码打印与正则表达式匹配的文本以及文本中的起始和结束位置:

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());
}

以下代码打印与正则表达式匹配的文本以及文本中的起始和结束位置:

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());
}

您正在寻找方法
m.start(intgroupid)
m.end(intgroupid)

Java文档:


在这种情况下,我会考虑使用命名捕获组<代码>(YouthReGEX)< /C>和方法>代码> MySt(“组名称”)< /COD>和<代码> M端(“组名称”)< /代码>。这样,当您更改输入文本或添加/删除某些组时,组名保持不变。:)

您正在寻找方法
m.start(int-groupId)
m.end(int-groupId)

Java文档:


在这种情况下,我会考虑使用命名捕获组<代码>(YouthReGEX)< /C>和方法>代码> MySt(“组名称”)< /COD>和<代码> M端(“组名称”)< /代码>。这样,当您更改输入文本或添加/删除某些组时,组名保持不变。:)

你能举个例子吗,像这样没人能理解你你不需要这些职位,你的方法有点像黑客
String#replaceAll()
可能会做你想做的事情。@glearn-我认为你的问题是正确的,但你想要它的原因是错误的。有更好的方法替换匹配的组。但对于我们这些真正需要团队开始和结束位置的人,谢谢你提出这个问题。你能提供一些这样的例子吗?没有人能理解你。你不需要这些位置,你的方法有点像黑客
String#replaceAll()
可能会做你想做的事情。@glearn-我认为你的问题是正确的,但你想要它的原因是错误的。有更好的方法替换匹配的组。但对于我们这些真正需要团队开始和结束位置的人来说,谢谢你提出这个问题。我真的很喜欢向下的投票,当他们有一个清晰的解释,让我理解我的答案中的错误。所以我可以学习并提高答案和我的知识。我真的很喜欢投反对票的人,他们有一个清晰的解释,让我理解我的答案中的错误。这样我就可以学习并提高答案和我的知识。