如何用短划线替换所有空格,制表符,换行符,逗号和下划线?
问题描述:
我想写一个模板标签来代替空格,制表符,新行,逗号,破折号强调做一个SEO友好的URL:如何用短划线替换所有空格,制表符,换行符,逗号和下划线?
re.sub('\s+', '-', str)
这行代码与破折号代替空格和:
re.sub('(?<=[,.?!\t\n ])+', '-', str)
这行代码应该用短划线代替?<=[,.?!،
和空格,但它没有。
答
您是否考虑过使用内置的slugify
过滤器?
第二个表达式的问题是您使用的是积极的后视(?<=
)。
“零宽度正回顾后的位置处匹配,如果先行内的图案可以是 在该位置一致结束(即到该位置的左侧)
。
以下是可能是你所要做的:
re.sub('[,.?!\t\n ]+', '-', s)
这replacin g带有单个短划线的任何字符序列,.?!\t\n
。
是的,但在我的情况下,我不能使用它,看看这个:http://stackoverflow.com/questions/11455812/use-slugify-in-template/11456912#comment15163328_11456912 – 2012-07-14 09:58:52
好的,以及,无论如何都提供了固定的正则表达式:) – Hamish 2012-07-14 10:05:57