RegEx 从时间中提取日期
RegEx to extract Date from time
我有以下日期和时间,并希望使用 RegEx
将其转换为简单数字
我有:2017-11-02T04:00:00Z
我想将其转换为:20171102(包括 months/dates 的前导零)
RegEx 可以吗?在使用“^(.*?)-”
工作数小时后只能获得“2017-”
似乎越来越难了,任何帮助都非常感谢
编辑:显示我正在尝试的地方。我正尝试在 Nintex for SharePoint 上执行此操作。但在此之前,我正在使用 www.regEx101.com 来验证
^\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);
将以下正则表达式与 替换 模板一起使用:
^(\d{4})-(\d{2})-(\d{2}).*
并提供
作为替换模式。
详情
^
- 字符串开头
(\d{4})
- 第 1 组(稍后通过替换模式中的 </code> 反向引用引用):四位数 </li>
<li><code>-
- 一个连字符
(\d{2})
- 第 1 组(后来用替换模式中的 </code> 反向引用引用):两位数 </li>
<li><code>-
- 一个连字符
(\d{2})
- 第 3 组(后来用替换模式中的 </code> 反向引用引用):两位数 </li>
<li><code>.*
- 字符串的其余部分。
参见regex demo。
无法从正则表达式的匹配组中排除字符,因此您必须使用三个匹配组。我使用命令行 sed 来试验正则表达式。下面是一些输出来说明我的意思:
$ echo '2017-11-02T04:00:00Z'|sed 's/^\([0-9]*\)-\([0-9]*\)-\([0-9]*\)T.*$//'
20171102
此命令在单独的捕获组中匹配任意长度数字的每个序列,然后用这三个组替换整个字符串。您的语言实现此功能的方式会有所不同。
我有以下日期和时间,并希望使用 RegEx
将其转换为简单数字我有:2017-11-02T04:00:00Z
我想将其转换为:20171102(包括 months/dates 的前导零)
RegEx 可以吗?在使用“^(.*?)-”
工作数小时后只能获得“2017-”似乎越来越难了,任何帮助都非常感谢
编辑:显示我正在尝试的地方。我正尝试在 Nintex for SharePoint 上执行此操作。但在此之前,我正在使用 www.regEx101.com 来验证
^\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);
将以下正则表达式与 替换 模板一起使用:
^(\d{4})-(\d{2})-(\d{2}).*
并提供
作为替换模式。
详情
^
- 字符串开头(\d{4})
- 第 1 组(稍后通过替换模式中的</code> 反向引用引用):四位数 </li> <li><code>-
- 一个连字符(\d{2})
- 第 1 组(后来用替换模式中的</code> 反向引用引用):两位数 </li> <li><code>-
- 一个连字符(\d{2})
- 第 3 组(后来用替换模式中的</code> 反向引用引用):两位数 </li> <li><code>.*
- 字符串的其余部分。
参见regex demo。
无法从正则表达式的匹配组中排除字符,因此您必须使用三个匹配组。我使用命令行 sed 来试验正则表达式。下面是一些输出来说明我的意思:
$ echo '2017-11-02T04:00:00Z'|sed 's/^\([0-9]*\)-\([0-9]*\)-\([0-9]*\)T.*$//'
20171102
此命令在单独的捕获组中匹配任意长度数字的每个序列,然后用这三个组替换整个字符串。您的语言实现此功能的方式会有所不同。