在python中使用re.sub时是否可以使用regex命名组
我试图在使用在python中使用re.sub时是否可以使用regex命名组,python,regex,python-3.x,Python,Regex,Python 3.x,我试图在使用re.sub时使用组。下面的方法很好用 dt1 = "2026-12-02" pattern = re.compile(r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})') m = pattern.match(dt1) print(m.group('year')) print(m.group('month')) print(m.group('day')) repl = '\\3-\\2-\\
re.sub
时使用组。下面的方法很好用
dt1 = "2026-12-02"
pattern = re.compile(r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})')
m = pattern.match(dt1)
print(m.group('year'))
print(m.group('month'))
print(m.group('day'))
repl = '\\3-\\2-\\1'
print(re.sub(pattern, repl, dt1))
dt1=“2026-12-02”
pattern=re.compile(r'(?P\d{4})-(?P\d{1,2})-(?P\d{1,2}))
m=模式匹配(dt1)
打印(m.group(“年度”)
打印(m.group(“月”)
打印(m.group(“日”)
回复='\\3-\\2-\\1'
打印(再打印(图案、复制、dt1))
输出为
02-12-2026
我的查询不是使用组号,我们是否可以使用组名作为:
\日-\月-\年
dt1 = "2026-12-02"
from datetime import datetime
print datetime.strptime(dt1, "%Y-%m-%d").strftime("%d-%m-%Y")
这里不需要正则表达式
输出:
02-12-2026
但是如果你想用正则表达式,那么就这样
dt1 = "2026-12-02"
pattern = re.compile(r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})')
m = pattern.match(dt1)
def repl(matchobj):
print matchobj.groupdict()
return matchobj.group('year')+"-"+matchobj.group('month')+"-"+matchobj.group('day')
print(re.sub(pattern, repl, dt1))
dt1=“2026-12-02”
pattern=re.compile(r'(?P\d{4})-(?P\d{1,2})-(?P\d{1,2}))
m=模式匹配(dt1)
def repl(匹配对象):
打印matchobj.groupdict()
返回matchebj.group('year')+“-”+matchebj.group('month')+“-”+matchebj.group('day'))
打印(再打印(图案、复制、dt1))
使用\g
重新导入
dt1=“2026-12-02”
pattern=re.compile(r'(?P\d{4})-(?P\d{1,2})-(?P\d{1,2}))
打印(pattern.sub(r“\g-\g-\g”,dt1))
产出:“02-12-2026”
Hi,我正在尝试使用re.sub()和命名组来实现同样的效果。@setushwetank,你为什么不想使用datetime
模块?太棒了。这就是我要找的。谢谢@FlyingTeller
import re
dt1 = "2026-12-02"
pattern = re.compile(r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})')
print(pattern.sub(r"\g<day>-\g<month>-\g<year>", dt1))
Output: '02-12-2026'