Java正则表达式以查看字符串是否包含%s,%d,%n
So我正在编写我自己的Java正则表达式以查看字符串是否包含%s,%d,%n,java,regex,format,Java,Regex,Format,So我正在编写我自己的toString()方法的变体,基本上是在调用该方法时,传入一个字符串,然后传入一个参数toString(Object…args)。像这样 this.toString("%8s", this.log, "%n%s %s", this.theMap, "%s", this.countIterator()); 因此,我使用以下代码来查看传入的参数是常规字符串还是格式字符串 if(args[i].getClass().getName() == "java.lang.String
toString()
方法的变体,基本上是在调用该方法时,传入一个字符串,然后传入一个参数toString(Object…args)
。像这样
this.toString("%8s", this.log, "%n%s %s", this.theMap, "%s", this.countIterator());
因此,我使用以下代码来查看传入的参数是常规字符串还是格式字符串
if(args[i].getClass().getName() == "java.lang.String") {
if(args[i].toString().contains("%\\-?[1-9]s?*")) {
format = args[i].toString();
} else {
s += args[i].toString();
}
}
args[i].toString()包含(“%\\-?[1-9]s?*”)
regex不起作用,但是当我使用
args[i].toString().matches(“%\\-?[1-9]s?*”)
它只适用于%s
或%9s
字符串的实例,而不适用于%s%s
字符串的实例。当我将正则表达式中的s
与d
或n
交换时,它也会起作用
我知道你在问为什么要重新发明轮子,只需使用String.format()
,我应该这么做,因为我已经想到了这一点,在解决它之前,我什么都做不了
我还尝试复制和粘贴java.util.Formatter
class'“%(\\d+\\$)?([-\+0,(\\试试这个
Pattern p = Pattern.compile("(%[0-9]*(s|d|n))");
System.out.println("match: " + p.matcher(str).find());
您可以将模式存储为全局或静态变量,并在需要时重用它