1

大家好,我对正则表达式有疑问,您能帮我从文本中提取日期,例如:

Start   20130918 14:35:00

我只从文本中提取 20130918 。我试过这样的事情:

regexreplace(Start('\s+\w{5}\d{8}\s',''))
4

2 回答 2

4

对于此类问题,最好使用子字符串而不是 regex_replace:

select substring('Start   20130918 14:35:00' from '[0-9]{8}')
于 2013-09-26T12:00:09.707 回答
2

您可以使用以下表达式来匹配该行:

Start\s+([0-9]{8})\s.*

然后是替换字符串:\1.

注意:如果您将表达式作为字符串传递,您可能需要对每个反斜杠进行双重转义,因此您可能需要使用:

Start\\s+([0-9]{8})\\s.*

编辑:您可以使用以下语句:

SELECT regexp_replace('Start 20130918 14:35:00','Start\s+([0-9]{8})\s.*','\1')

这是一个SQL Fiddle 演示

于 2013-09-25T21:07:24.677 回答