2014-01-21 49 views
-1

我正在尝试创建一个选择性字符串筛选器。我希望能够删除除了我选择保留的字符以外的所有字符。可选字符串筛选器

例如,如果我输入的字符串:“我只是想元音”

这将返回:“Ioaeoe”

所有其它字符(辅音,数字,符号)将如果输入被忽略。 请帮忙。

+0

只是提醒接受帮助你解决问题最多的答案:-) – gravetii

回答

2

您可以使用此代码:

input_string = "I only want the vowels" 
allowed_chars = 'AEIOUaeiou' 
output_string = ''.join((c for c in input_string if c in list(allowed_chars))) 

但使用定义的范围正则表达式有更多的解决方案成为可能,e.g。

+0

非常感谢!这非常有帮助! – user3152181

+0

@ user3152181:好的,考虑接受我的回答;) – sphere

1

你的目的,你可以使用lambda函数做这样的事情:

def is_vowel(c): 
    if c.lower() in ['a', 'e', 'i', 'o', 'u']: return True 
    return False 

str = 'trial string' 

def filter_vowel_string(str): 
    return filter(lambda c: is_vowel(c), str) 

def filter_consonant_string(str): 
    return filter(lambda c: not is_vowel(c), str) 

print filter_vowel_string(str) 
print filter_consonant_string(str) 

您可以定义所有你想实现的过滤条件的功能。在特定情况下,你需要编写,将检查的功能,如果一个字母是元音或不:

def is_vowel(c): 
    if c.lower() in ['a', 'e', 'i', 'o', 'u']: return True 
    return False 

然后,过滤字符串。同样适用于其他滤镜。理想情况下,您可以将字符串传递到所需的所有过滤器并获取最终字符串。

希望这会有所帮助。