Py学习  »  Python

如何在Python3中列出字符串中的字符?

NeverEndingCycle • 4 年前 • 952 次点击  

我的问题很简单,我试图从字符串中去掉任何非A-Z或0-9的字符。

基本上这就是我要做的过程:

whitelist=['a',...'z', '0',...'9']

name = '_abcd!?123'

name.strip(whitelist)

print(name)

>>> abcd123

重要的是要知道,我不能只在名字中打印有效字符。我需要在变量改变的状态下使用它。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52529
 
952 次点击  
文章 [ 3 ]  |  最新文章 4 年前
Alec Alameddine
Reply   •   1 楼
Alec Alameddine    5 年前

您可以使用简单的正则表达式:

new_string = re.sub('[chars to remove]', '', old_string)

请注意字符串是不可变的。您需要分配一个新变量才能更改一个。

Boris
Reply   •   2 楼
Boris    5 年前

使用 string 有列表理解

import string
whitelist = set(string.ascii_lowercase + string.digits)
name = ''.join(c for c in name if c in whitelist)
Ajax1234
Reply   •   3 楼
Ajax1234    5 年前

你可以用 re.sub 并提供与要删除的内容完全匹配的模式:

import re
result = re.sub('[^a-zA-Z0-9]', '', '_abcd!?123')

输出:

'abcd123'