Python - 正则表达式仅在模式之后替换字符

时间:2017-02-17 07:44:34

标签: python regex

我有很多这种模式的字符串[INTEGER]-[URL-SLUG]。例子:

234234-url-slug-1
2-urlslug2
301-url-slug4

我需要更换' - '在带有' /'的整数之后但是留下另一个' - '完整。所以最后的字符串是:

234234/url-slug-1
2/urlslug2
301/url-slug4

2 个答案:

答案 0 :(得分:1)

这应该可以使用re.sub

> import re

> s = '234234-url-slug-1'
> re.sub(r'(\d)\-', r'\1/', s)
'234234/url-slug-1'
替换字符串中的

\1指的是匹配模式中的第一个捕获组:'(\d)'

答案 1 :(得分:1)

re.sub函数具有可选参数 count ,这是要替换的模式最大出现次数:

s = '234234-url-slug-1'
result = re.sub(r'^(\d+)-', r'\1/', s, 1)

print(result)

输出:

234234/url-slug-1