Regex 在Java中是否可以在正则表达式量词中传递引用?

Regex 在Java中是否可以在正则表达式量词中传递引用?,regex,reference,quantifiers,Regex,Reference,Quantifiers,我做了一个编程练习,我们必须编写一个格式化方法,该方法将字符串作为参数,作为我们想要格式化的文本输入,整数作为我们想要的行的长度 我们也有具体的规则,其中之一是:如果一个单词的长度超过了所需的长度,它应该自己排在一行上 因此,一种简单的方法是使用正则表达式搜索一系列长度至少为且可能更大的非空白字符,并将其自身匹配的字符替换为每边两个\n 也许代码更清楚:让我们想象一下我们想要的行长度是10 String s = line.replaceAll("([ \t])(\\S{10,})([ \t]

我做了一个编程练习,我们必须编写一个格式化方法,该方法将字符串作为参数,作为我们想要格式化的文本输入,整数作为我们想要的行的长度

我们也有具体的规则,其中之一是:如果一个单词的长度超过了所需的长度,它应该自己排在一行上

因此,一种简单的方法是使用正则表达式搜索一系列长度至少为且可能更大的非空白字符,并将其自身匹配的字符替换为每边两个\n

也许代码更清楚:让我们想象一下我们想要的行长度是10

  String s = line.replaceAll("([ \t])(\\S{10,})([ \t])", "\n$2\n");
  System.out.println(s);
这实际上效果很好

我的问题是行长应该作为参数传递给format方法;所以我引用这个参数的唯一方法就是使用它的引用。例如:

公共静态字符串格式(字符串s,int长度){

//丢失的东西

字符串s=line.replaceAll(([\t])(\s{length,})([\t]),“\n$2\n”); 系统输出打印项次

但是,在这种情况下,它将返回一个错误:PatternSyntaxException

我的问题是:有没有办法用一个量词的引用(而不是一个数字)来作为我们想要匹配的出现次数的参数?因为它似乎真的很有用,我很惊讶它似乎不起作用。而且看起来并不是很多人都遇到过这个问题。

试试这个

String s = line.replaceAll("([ \t])(\S{"+length+",})([ \t])", "\n$2\n");
System.out.println(s);