迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中删除除“.”之外的非数字字符

作者:迹忆客 最近更新:2023/01/26 浏览次数:

使用 re.sub() 方法删除除点之外的所有非数字字符。 来自字符串,例如 result = re.sub(r'[^0-9.]', '', my_str)re.sub() 方法将通过用空字符串替换它们来从字符串中删除所有非数字字符。

import re

my_str = 'a3.1b4c'

result = re.sub(r'[^0-9.]', '', my_str)

print(result)  # 👉️ '3.14'

如果我们希望避免使用正则表达式,请向下滚动到下一个副标题。

我们使用 re.sub() 方法从字符串中删除除点之外的所有非数字字符。

re.sub 方法返回一个新字符串,该字符串是通过用提供的替换替换模式的出现而获得的。

如果未找到模式,则按原样返回字符串。

我们传递给 re.sub() 方法的第一个参数是一个正则表达式。

方括号 [] 用于表示一组字符。

如果集合的第一个字符是插入符号 ^,则将匹配所有不在集合中的字符。

换句话说,我们的集合匹配任何不是 0-9 范围内的数字或点的字符。

我们传递给 re.sub() 方法的第二个参数是每个匹配项的替换。

import re

my_str = 'a3.1b4c'

result = re.sub(r'[^0-9.]', '', my_str)

print(result)  # 👉️ '3.14'

我们想删除所有非数字字符或点,所以我们用一个空字符串替换每个。

0-9 范围也有简写形式。

import re

my_str = 'a3.1b4c'

result = re.sub(r'[^\d.]', '', my_str)

print(result)  # 👉️ '3.14'

\d 字符匹配任何 Unicode 十进制数字。 这包括 [0-9] 和许多其他数字字符。

删除除“.”之外的所有非数字字符。 来自 String 使用 join()

删除除 . 之外的所有非数字字符。 来自一个字符串:

  1. 使用生成器表达式迭代字符串。
  2. 检查每个字符是数字还是点并返回结果。
  3. 使用 str.join() 方法连接通过测试的字符。
my_str = 'a3.1b4c'

result = ''.join(char for char in my_str if char in '123456789.')

print(result)  # 👉️ '3.14'

我们使用生成器表达式来迭代字符串。

生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们检查当前字符是数字还是点并返回结果。

in 运算符测试成员资格。 例如,如果 xs 的成员,则 x in s 的计算结果为 True,否则计算结果为 False

生成器对象仅包含字符串中的数字和点。

my_str = 'a3.1b4c'

# 👇️ ['3', '.', '1', '4']
print(list(char for char in my_str if char in '123456789.'))

最后一步是将数字和点连接成一个字符串。

my_str = 'a3.1b4c'

result = ''.join(char for char in my_str if char in '123456789.')

print(result)  # 👉️ '3.14'

str.join 方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

调用该方法的字符串用作元素之间的分隔符。

出于我们的目的,我们在空字符串上调用了 join() 方法,以在没有分隔符的情况下连接数字和点。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的 Pandas 插入方法

发布时间:2024/04/23 浏览次数:112 分类:Python

本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。

Pandas 重命名多个列

发布时间:2024/04/22 浏览次数:199 分类:Python

本教程演示了如何使用 Pandas 重命名数据框中的多个列。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便