我有以下日期&时间并希望使用RegEx将其转换为简单的数字
我有什么:2017-11-02T04:00:00Z
我想将其转换为:20171102(包括月/日的前导零)
RegEx可以实现吗?能够在使用'^(。*?) - '
工作数小时后才能获得'2017-'似乎越来越难,任何帮助之手都非常感激
编辑:显示我在尝试此处的位置。我试图在Nintex for SharePoint上执行此操作。但在此之前,我正在使用www.regEx101.com进行验证
答案 0 :(得分:1)
^\d{4}-\d{2}-\d{2}
怎么样?
这将恰好匹配四位数字,后跟一个连字符,后跟2位数字,后跟另一个连字符,后跟另外2位数字。
var str = "2017-11-02T04:00:00Z";
var res = str.match(/^\d{4}-\d{2}-\d{2}/)[0];
console.log(res);

答案 1 :(得分:1)
将以下正则表达式与替换模板一起使用:
^(\d{4})-(\d{2})-(\d{2}).*
并提供
$1$2$3
作为替代模式。
<强>详情
^
- 字符串开头(\d{4})
- 第1组(后来引用替换模式的$1
反向引用):四位数-
- 连字符(\d{2})
- 第1组(后来引用替换模式的$2
反向引用):两位数-
- 连字符(\d{2})
- 第3组(后来引用替换模式的$3
反向引用):两位数.*
- 字符串的其余部分。请参阅regex demo。
答案 2 :(得分:0)
无法从正则表达式中的匹配组中排除字符,因此您必须使用三个匹配组。我使用命令行sed来试验正则表达式。这是一些显示我的意思的输出:
$ echo '2017-11-02T04:00:00Z'|sed 's/^\([0-9]*\)-\([0-9]*\)-\([0-9]*\)T.*$/\1\2\3/'
20171102
此命令匹配单独捕获组中任意长度数字的每个序列,然后用三个组替换整个字符串。您的语言如何实现此功能会有所不同。