Java使用已知参数创建与正则表达式匹配的字符串

时间:2017-03-26 13:07:10

标签: java regex string

我尝试使用基于正则表达式模式的参数进行字符串重建。

我正在寻找类似的东西:

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

0 个答案:

没有答案