我需要将(正则表达式,最好是)短日期模式字符串转换为不同格式的字符串。
例如,如果我最后有"dd/mm/yyyy"
,我希望看到"%d/%m/%y"
。或者,如果我有"MMMM-DD-YY"
,我希望看到"%m-%d-%y"
。换句话说,日期格式的每个部分应缩短为一个字符并以百分号为前缀。零件和分隔符的顺序必须保持不变。
非常感谢任何帮助。
答案 0 :(得分:2)
你可以用这个:
([\w])[\w]+([/-])([\w])[\w]+([/-])([\w])[\w]+
并替换为:
%$1$2%$3$4%$5
工作正则表达式示例:
C#
string example1 = "dd/mm/yyyy";
string example2 = "MMMM-DD-YY";
Regex rgx = new Regex(@"([\w])[\w]+([/-])([\w])[\w]+([/-])([\w])[\w]+");
string result1 = rgx.Replace(example1, "%$1$2%$3$4%$5");
string result2 = rgx.Replace(example2, "%$1$2%$3$4%$5");
Console.WriteLine(result1);
Console.WriteLine(result2);
输出:
%d/%m/%y
%M-%D-%Y
注意:您可以使用ToLower()
确保M-D-Y是小写的..如果您愿意的话。