首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用正则表达式根据位置拆分字符串

使用正则表达式根据位置拆分字符串
EN

Stack Overflow用户
提问于 2014-06-18 18:01:27
回答 3查看 704关注 0票数 1

我需要将这个(日期)字符串"12112014“转换为"12.11.2014”

我想说的是:

拆分前两个字符串"12",添加".",然后将字符串从3-4拆分为"11",添加".“。最后拆分最后4个字符串(或5-8)得到"2012“

我已经知道如何获取前2个字符( "^\d{2}“),但无法获取基于位置的字符。

EN

回答 3

Stack Overflow用户

发布于 2014-06-18 18:08:42

在没有指定您想要的语言的情况下,我选择了javascript:

代码语言: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中也是如此:

代码语言:javascript
运行
复制
String s = "12012011";
String s2 = s.replaceAll("(\\d{2})(\\d{2})(\\d{4})", "$1.$2.$3");
System.out.println(s2);
票数 0
EN

Stack Overflow用户

发布于 2014-06-18 18:09:06

我不认为只有使用split才能做到这一点。

您可以将表达式扩展为:

代码语言:javascript
运行
复制
"(^(\d{2})(\d{2})(\d{4}))"

然后使用您选择的Regex语言访问组,并构建所需的字符串。

请注意,除了所有正则表达式学习之外,您还可以始终将原始字符串解析为强类型的Date或DateTime变量,并使用适当的语言环境输出值。

票数 0
EN

Stack Overflow用户

发布于 2014-06-18 20:17:14

无论使用哪种编程语言,您都应该尝试从字符串中提取数字,然后用".“将它们连接起来。

在perl中,可以这样做:

代码语言:javascript
运行
复制
$_ = '12112014';

s/(\d{2})(\d{2})(\d{4})/$1.$2.$3/;

print "$_";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24282639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档