在 Python 中从字符串中删除数字
Remove the Numbers from a String in Python
要从字符串中删除数字:
- 使用生成器表达式迭代字符串。
- 使用该
isdigit()
方法过滤掉所有数字。 - 使用该
str.join()
方法将剩余的字符连接成一个字符串。
主程序
my_str = '12apple 345banana 678kiwi' # ✅ remove numbers from a string result = ''.join(char for char in my_str if not char.isdigit()) print(result) # 👉️ 'apple banana kiwi'
对于正则表达式解决方案,向下滚动到下一个副标题。
我们使用生成器表达式来迭代字符串。
生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。
在每次迭代中,我们使用该str.isdigit()
方法检查当前字符是否不是数字并返回结果。
str.isdigit
方法返回如果字符串True
中的所有字符都是数字并且至少有 1 个字符,否则False
返回。
请注意,该字符是否为数字的测试被not
运算符否定。
主程序
my_str = '12apple 345banana 678kiwi' # ✅ remove numbers from a string result = ''.join(char for char in my_str if not char.isdigit()) print(result) # 👉️ 'apple banana kiwi'
我们只想在生成器对象中保留非数字字符。
最后一步是使用该str.join()
方法将非数字字符连接成一个字符串。
str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。
主程序
print(''.join(['a', 'b', 'c', 'd'])) # 👉️ 'abcd'
调用该方法的字符串用作元素之间的分隔符。
出于我们的目的,我们使用空字符串分隔符连接字符。
使用正则表达式从字符串中删除数字
使用该re.sub()
方法从字符串中删除数字,例如
result = re.sub(r'\d+', '', my_str)
。该re.sub()
方法将通过用空字符串替换每个数字来从字符串中删除数字。
主程序
import re my_str = '12apple 345banana 678kiwi' result = re.sub(r'\d+', '', my_str) print(result) # 👉️ 'apple banana kiwi' print(''.join(['a', 'b', 'c', 'd'])) # 👉️ 'abcd'
我们使用该re.sub()
方法从字符串中删除数字。
re.sub方法返回一个新字符串,该字符串是通过用提供的替换替换模式的出现而获得的。
我们传递给该方法的第一个参数是一个正则表达式。
该
\d
字符匹配数字[0-9]
(以及许多其他数字字符)。加号+
与前面的字符(任何数字)匹配 1 次或多次。
我们传递给该re.sub
方法的第二个参数是替换字符串。
我们想从字符串中删除所有数字,因此我们使用空字符串作为替换。
如果字符串不包含任何数字,该re.sub
方法将返回原始字符串。