python - 如何删除列表中特定字符之后的所有字符

标签 python string list loops split

我的问题是:

我有一个列表,经过多次清理后,其中包含看起来像“455XYZ455”的元素。我试图删除 X 之后的所有内容,但它位于列表内。允许我执行此操作的代码如下:

check = [re.sub(r'\W', '', i) for i in content]
# print(check)
check2 = [re.sub('[aclassnewpagehref]', '', i) for i in check]
# print(check2)
check3 = [re.sub('[/<=""]', '', i) for i in check2]
# print(check3)
check4 = [item for item in check3 if item != '']
print(check4)

正如预期的那样,它给了我很多“455XYZ455”,就像上面一样。我只想要“455”,但这是一个列表。 作为一个 Python 初学者,我完全陷入困境。 感谢您的阅读,或许还可以帮助我!

最佳答案

您可以捕获第 1 组中要保留的前几个数字,并删除从 X 开始的其余数字。

\A(\d+)X.*\Z

说明

  • \A 字符串开头
  • (\d+)X 捕获组 1 中的 1+ 位数字,然后匹配 X
  • .*\Z 匹配任意字符 0 次以上并断言字符串结尾

regex demo

例如

import re
final = ["455XYZ455", "455XYZ455"]
for item in final:
    print(re.sub(r"^(\d+)X.*\Z", r"\1", item))

输出

455
455

关于python - 如何删除列表中特定字符之后的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64969131/

相关文章:

java - 如何使用可变参数从函数返回一个字符串

java - 我如何替换java中的字符串来重写序列

python - 对 db.Model 的查询会检索 db.Model 的所有属性,无论它们是否必要。有其他选择吗?

javascript - 如何在django应用程序中实现ajax?

python - Django Rest Framework SerializerMethodField 传递额外参数

字符串文字的C优化

python - 在列表中查找连续的整数

Python List,将一项从一项转移到另一项

c# - 如何在C#中获取动态对象的类型?

Python 3.6.4 Arcade 模块窗口错误? {pyglet.gl.lib.GLException : b'invalid enumerant'}