我尝试使用基于正则表达式模式的参数进行字符串重建。
我正在寻找类似的东西:
String regex = "(?<string>[a-z\-]+)?(/number/(?<number>\\d+))?"
案例1:
Map<String,String> parameters = new HashMap<>();
parameters.put("string","test");
parameters.put("number","1");
generator.generateString(regex, parameters) // returns "test/number/1"
案例2:
Map<String,String> parameters = new HashMap<>();
parameters.put("string","test");
generator.generateString(regex, parameters) // returns "test"
因为此论坛(/number/(?<number>\\d+))?
是可选的,所以它仍会匹配
也许它有一个库,只需注意我需要一些与正则表达式命名组合作的东西(在Java7中引入)
我可以自己编写,但至少可以检测模式中的组的库将是一个很大的帮助。 这样的图书馆如何运作:
Pattern2 r = Pattern2.compile("(?<string>[a-z\-]+)?(/number/(?<number>\\d+))?");
查找&#34;字符串&#34;的开始和结束字符。命名组
r.start("string"); //0
r.end("string"); //19
或通过多个小组查找小组的开始和结束
r.start(2); //20
r.end(2); //44