0

这是我的示例字符串:

xzyxxy%MM%xyzxy%DD%xyyzy

我想把它变成一个正则表达式。MM 必须在 1-12 范围内,DD 在 1-31 范围内。以下是与正则表达式匹配的可能字符串:

xzyxxy5xyzxy28xyyzy
xzyxxy11xyzxy2xyyzy
xzyxxy12xyzxy31xyyzy

我对正则表达式非常陌生,我的第一个想法是为 MM 和 DD 获取一个正则表达式,然后将其附加到另一个字符串中。这可能是我的java方法:

String getRegex()   { 
    String MMRegex = "";
    String DDRegex = "";

    String regex;
    regex = expression.replaceAll("%DD%", DDRegex);
    regex = regex.replaceAll("%MM%", MMRegex);

    return regex; 
}

问题是当我找到 DD 和 MM 的正则表达式并将其附加到其他字符串时它不起作用。

4

1 回答 1

0

我想也许你想要的与正则表达式没有任何关系。如果你想在一个字符串中过去一天和一个月,你可以使用:

String answer = String.format("xzyxxy%dxyzxy%dxyyzy", 5, 28);

再次,如果你想走另一条路,也许使用:

String date = "xzyxxy5xyzxy28xyyzy";
String dateparts[] = x.split("[^0-9]+");

那么 dateparts[1] 将是“5”而 dateparts[2] 将是“28”是你可以使用的东西吗?

于 2013-04-05T13:26:10.223 回答