python-3.x - 使用 re.sub 中的组进行精确匹配
问题描述
我正在尝试更改带有后缀的单词:“-se”、“-a”、“-o”或“-las”,放置一个空格而不是字符“-”。示例:calculou-se -> calculouse。但是,我只想进行完全匹配。没有带来预期的结果。
import re
string = " Calulou-se"
re.sub(r"^([a-zA-Z])(-)(se|a|o|las)$", r"\1 \3", string, flags = re.IGNORECASE)
# Prints: Calculou-se
解决方案
第一组可以重复任意次数。所以你需要修复你的正则表达式:
r"^([a-zA-Z]*)(-)(se|a|o|las)$" # note the '*'
或者,更简单:
re.sub(r"-(se|a|o|las)$", r" \1", string, flags = re.IGNORECASE)
推荐阅读
- reactjs - 材质 UI 切换按钮 - 选择时无法更改背景颜色
- r - 数据帧特定部分的 R 中的乘法
- python - 将照片上传到网站时如何更改操作系统文件管理器路径?
- javascript - Typescript:如何从浏览器控制台访问功能
- javascript - 如何在 OpenWeather 的 api url 中使用模板字符串
- css - SWUP 更改 CSS 文件和动画淡入效果 (HeadPlugin)
- python - Webdriver:未定义的名称“驱动程序”
- python - 如何在没有硒的情况下抓取动态网站
- javascript - 将代码粘贴到 Gist 后丢失格式
- r - R随机化和随机化数据表的列