我想处理字符串数据集,并将“-”替换为“。”。 我有这个数据集:
AUDI XXX-R 2-0TS
AUDI XXX-R 2-0T
AUDI X-R 2-0
我希望将'-'替换为'。'因此,所有出现的号码为number-number **的地方都应替换为number.number **
我尝试添加以下正则表达式模式,但是它代替了字母的'-'
[^a-z-A-Z]?(\d)-(\d)?[a-zA-Z]?[a-z-A-Z]
我需要这样一种模式,即无论两位数字之间的字符串“-”如何都应替换为“。”。
答案 0 :(得分:6)
为此,我们可以使用lookaround constructs [regular-expressions.info]:
fullcalendar: {
firstHour: 9,
header: {
left: 'prev,next today',
center: 'title',
right: 'listDay,listWeek,month,listMonth,'
},
slotMinutes: 30,
theme:false,
views: {
today: {buttonText: 'Today'},
listWeek: {buttonText: 'Week'},
listDay: {buttonText: 'Day'},
listMonth: {buttonText: 'List'},
month: {buttonText: 'Month'}
},
defaultView: 'month'
},
为此from re import compile as recompile
rgx = recompile(r'(?<=\d)[-](?=\d)')
,我们可以这样替换:
rgx
如果右边的数字是可选的,我们可以忽略它,例如:
>>> rgx.sub('.', 'AUDI XXX-R 2-0TS AUDI XXX-R 2-0T AUDI X-R 2-0')
'AUDI XXX-R 2.0TS AUDI XXX-R 2.0T AUDI X-R 2.0'
因此,这也将rgx = recompile(r'(?<=\d)[-]')
替换为3-A
。