尝试使用正则表达式选择RQL查询中存在的数字的前面零



我试图删除下面查询中存在的数字的前面的零

String query = "or(contains(number,'04506'),contains(name,'04506'),contains(vendorInfo.name,'04506'),contains(vendorInfo.number,'04506'),contains(costCategories.name,'04506')";

我使用下面的regex

query = query.replaceAll("\b0+",""); 

问题是,如果我们提供一个带有时间戳的查询,它也会删除0,例如

query = "ge(dateCreated,'2013-01-18T19:30:00.000Z')"; 

您可以使用负查找来不删除-,:,.T后面或前面的零。

class Main {
public static void main(String args[]) {
String query = "contains(costCategories.name,'05.04506')ge(dateCreated,'2013-01-18T09:30:00.000Z')";
query = query.replaceAll("(?<![-:\.T])\b0+(?![-:\.T])", "");
System.out.println(query);
}
}

:

contains(costCategories.name,'5.04506')ge(dateCreated,'2013-01-18T09:30:00.000Z')

最新更新