我的问题是:
我有一个列表,经过多次清理后,其中的元素看起来像“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
在组1中捕获1+个数字,然后匹配X.*\Z
匹配任何字符0+次,并断言字符串的结尾regex demo
比如说
输出
只需使用不带正则表达式的split即可完成此操作。假设字符串“455XYZ455”位于变量a中
这里a将被“x”分割,它将返回“x”之前和之后的零件列表,但由于您只需要“x”之前的零件,我已将列表的第一个元素指定给s
相关问题 更多 >
编程相关推荐