首页 > 解决方案 > 如何删除单词末尾的数字?

问题描述

我想从一个字符串中删除数字,该字符串只是放在一个单词之后,没有任何空格。例如:

'Senku Ishigami is charecter from a manga series98 onging since 2017.'

应该:

'Senku Ishigami is charecter from a manga series onging since 2017.'

我可以使用 regex 删除检测数字'[a-z]+[0-9]+',但是当我不明白如何删除它时。我试图通过只写来删除它'[a-z]',因为我认为它会起作用,但它只是'[a-z]'作为字符串打印。

这是代码:

import re

text ='Senku Ishigami is charecter from a manga series98 onging since 2017.'
text = re.sub(r'[a-z]+[0-9]+', '[a-z]', text)
print(text)

输出:

Senku Ishigami is charecter from a manga [a-z] onging since 2017.

标签: pythonregex

解决方案


您还可以使用捕获组在匹配 1 个以上数字之前仅捕获单个字符。

在使用组 1 的替换中使用\1

([a-z])\d+\b

正则表达式演示

import re

text ='Senku Ishigami is charecter from a manga series98 onging since 2017.'
text = re.sub(r'([a-z])\d+\b', r'\1', text)
print(text)

输出

Senku Ishigami is charecter from a manga series onging since 2017.

推荐阅读