我需要转换这个(日期)String" 12112014"至" 12.11.2014"
我想要的是:
拆分前2个字符串" 12",添加"。", 然后将字符串从3-4拆分为" 11",添加"。" 在最后分割最后4个字符串(或5-8)以获得" 2012"
我已经找到了如何获得前2个字符(" ^ \ d {2}"),但我没有根据位置获得字符。
答案 0 :(得分:0)
如果没有指定您之后使用的语言,我已经选择了javascript:
var s = '12012011';
var s2 = s.replace(/(\d{2})(\d{2})(\d{4})/,'$1.$2.$3'));
console.log(s2); // prints "12.01.2011"
它的要点是您使用()
指定正则表达式中的组,然后可以使用替换表达式中的组。
在Java中相同:
String s = "12012011";
String s2 = s.replaceAll("(\\d{2})(\\d{2})(\\d{4})", "$1.$2.$3");
System.out.println(s2);
答案 1 :(得分:0)
我不认为只有拆分才能做到这一点。
您可以将表达式扩展为:
"(^(\d{2})(\d{2})(\d{4}))"
然后使用您选择的Regex语言访问组并构建所需的字符串。
请注意 - 除了所有正则表达式学习之外 - 您还可以将原始字符串解析为强类型Date或DateTime变量,并使用适当的语言环境输出值。
答案 2 :(得分:0)
无论编程语言是什么,您都应该尝试从字符串中提取数字,然后使用“。”将它们连接起来。
在perl中,它可以完成:
$_ = '12112014';
s/(\d{2})(\d{2})(\d{4})/$1.$2.$3/;
print "$_";