我有以下选项,但是所有选项都返回完整字符串。我需要从正则表达式开始删除日期。
d = re.match('^\d{2}.\d{2}.\d{4}(.*?)$', '01.10.2018Any text..')
d = re.match('^[0-9]{2}.[0-9]{2}.[0-9]{4}(.*?)$', '01.10.2018Any text..')
该怎么做? Python 3.6
答案 0 :(得分:2)
您可以使用sub从字符串^\d{2}\.\d{2}\.\d{4}
的开头匹配日期(如模式)(注意,这不会验证日期),并替换为空字符串。
正如@UnbearableLightness所述,如果要从字面上进行匹配,则必须转义点\.
。
import re
result = re.sub(r'^\d{2}\.\d{2}\.\d{4}', '', '01.10.2018Any text..')
print(result) # Any text..
答案 1 :(得分:0)
抢第一局比赛
>>> d = re.match('^\d{2}.\d{2}.\d{4}(.*?)$', '01.10.2018Any text..').group(1)
>>> print (d)
'Any text..'
如果不确定是否存在匹配项,则必须先进行检查
>>> s = '01.10.2018Any text..'
>>> match = re.match('^\d{2}.\d{2}.\d{4}(.*?)$', s)
>>> d = match.group(1) if match else s
>>> print(d)
'Any text..'
答案 2 :(得分:0)
使用组来提取日期部分:
d = re.match('^(\d{2}.\d{2}.\d{4})(.*?)$', '01.10.2018Any text..')
if d:
print(d.group(1))
print(d.group(2))
第0组是整个字符串,我在日期的正则表达式中添加了一对括号。这是第1组。第2组是紧随其后的文字