我需要将这个(日期)字符串"12112014“转换为"12.11.2014”
我想说的是:
拆分前两个字符串"12",添加".",然后将字符串从3-4拆分为"11",添加".“。最后拆分最后4个字符串(或5-8)得到"2012“
我已经知道如何获取前2个字符( "^\d{2}“),但无法获取基于位置的字符。
发布于 2014-06-18 18:08:42
在没有指定您想要的语言的情况下,我选择了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);发布于 2014-06-18 18:09:06
我不认为只有使用split才能做到这一点。
您可以将表达式扩展为:
"(^(\d{2})(\d{2})(\d{4}))"然后使用您选择的Regex语言访问组,并构建所需的字符串。
请注意,除了所有正则表达式学习之外,您还可以始终将原始字符串解析为强类型的Date或DateTime变量,并使用适当的语言环境输出值。
发布于 2014-06-18 20:17:14
无论使用哪种编程语言,您都应该尝试从字符串中提取数字,然后用".“将它们连接起来。
在perl中,可以这样做:
$_ = '12112014';
s/(\d{2})(\d{2})(\d{4})/$1.$2.$3/;
print "$_";https://stackoverflow.com/questions/24282639
复制相似问题