首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何用破折号替换所有的空格、制表符、换行符、逗号和下划线?

如何用破折号替换所有的空格、制表符、换行符、逗号和下划线?
EN

Stack Overflow用户
提问于 2012-07-14 09:52:27
回答 1查看 5.4K关注 0票数 3

我想写一个模板标签,以取代空格,制表符,新行,逗号,下划线与破折号,以使搜索引擎优化友好的网址:

代码语言:javascript
运行
AI代码解释
复制
re.sub('\s+', '-', str)

该行代码将空格替换为破折号和:

代码语言:javascript
运行
AI代码解释
复制
re.sub('(?<=[,.?!\t\n ])+', '-', str)

这行代码应该用破折号替换?<=[,.?!،和空格,但它没有。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-14 09:56:46

您是否考虑过使用内置的slugify过滤器?

第二个表达式的问题是使用了正向后视(?<=)。

来自regular-expressions.info

“零宽度正后视。如果可以匹配前视中的模式,则匹配该位置(即,该位置的左侧)。

下面可能就是您想要做的事情:

代码语言:javascript
运行
AI代码解释
复制
re.sub('[,.?!\t\n ]+', '-', s)

这将用单个破折号替换任何字符序列,.?!\t\n

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11482753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文