Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用re.sub时是否可以使用regex命名组_Python_Regex_Python 3.x - Fatal编程技术网

在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'