我想写一个模板标签,以取代空格,制表符,新行,逗号,下划线与破折号,以使搜索引擎优化友好的网址:
re.sub('\s+', '-', str)
该行代码将空格替换为破折号和:
re.sub('(?<=[,.?!\t\n ])+', '-', str)
这行代码应该用破折号替换?<=[,.?!،
和空格,但它没有。
发布于 2012-07-14 09:56:46
您是否考虑过使用内置的slugify
过滤器?
第二个表达式的问题是使用了正向后视(?<=
)。
“零宽度正后视。如果可以匹配前视中的模式,则匹配该位置(即,该位置的左侧)。
下面可能就是您想要做的事情:
re.sub('[,.?!\t\n ]+', '-', s)
这将用单个破折号替换任何字符序列,.?!\t\n
。
https://stackoverflow.com/questions/11482753
复制相似问题