Regex Postgresql正则表达式替换文本字段
大家好,我对正则表达式有疑问,你们能帮我从文本中提取日期吗Regex Postgresql正则表达式替换文本字段,regex,file,postgresql,text,replace,Regex,File,Postgresql,Text,Replace,大家好,我对正则表达式有疑问,你们能帮我从文本中提取日期吗 Start 20130918 14:35:00 我只想从文本中提取20130918。 我试过这样的方法: regexreplace(Start('\s+\w{5}\d{8}\s','')) 可以使用以下表达式匹配该行: Start\s+([0-9]{8})\s.* 然后是替换字符串:\1 注意:如果要将表达式作为字符串传递,可能需要对每个反斜杠进行双转义,因此可能需要使用: Start\\s+([0-9]{8})\\s.*
Start 20130918 14:35:00
我只想从文本中提取20130918。
我试过这样的方法:
regexreplace(Start('\s+\w{5}\d{8}\s',''))
可以使用以下表达式匹配该行:
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')
下面是一个您可以使用以下表达式来匹配该行:
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')
对于这类问题,使用substring比使用regex_替换更好:
select substring('Start 20130918 14:35:00' from '[0-9]{8}')
对于此类问题,最好使用substring而不是regex_replace:
select substring('Start 20130918 14:35:00' from '[0-9]{8}')
你说你想提取日期,但你却用空字符串替换除时间之外的所有内容,你到底想实现什么?我只想从文本中提取日期,删除开始和时间。你说你想提取日期,但你却用空字符串替换除时间之外的所有内容,你到底想实现什么?我想要从文本中只提取日期,删除开始和时间。但是当我这样做时,我只得到输出开始。选择regexp_替换'start 20130918 14:35:00','\w{5}\s+[0-9]{7}\s*,这样我就得到了输出时间,这对我来说只提取日期有点困难,其他所有的东西都被删除了。但是当我这样做的时候,我只得到输出开始。选择regexp_replace'Start 20130918 14:35:00',“\w{5}\s+[0-9]{7}\s*”,这样我就得到了输出时间,对我来说只提取日期有点困难,其他所有的都被删除了。