我有一些字符串,我想从中删除一些不需要的字符。
例如:Adam'sApple ----> AdamsApple
。(不区分大小写)
有人可以帮助我,我需要最快的方法来做到这一点,因为我有几百万条记录需要打磨。
感谢
答案 0 :(得分:5)
一个简单的方法:
>>> s = "Adam'sApple"
>>> x = s.replace("'", "")
>>> print x
'AdamsApple'
...或者查看regex substitutions。
答案 1 :(得分:5)
translate方法的第二个参数中的任何字符都将被删除:
>>> "Adam's Apple!".translate(None,"'!")
'Adams Apple'
注意:translate要求Python 2.6或更高版本对第一个参数使用None,否则必须是长度为256的翻译字符串。string.maketrans('','')可用于代替None 2.6之前的版本。
答案 2 :(得分:2)
尝试:
"Adam'sApple".replace("'", '')
更进一步,用什么都不替换多个字符:
import re
print re.sub(r'''['"x]''', '', '''a'"xb''')
收率:
ab
答案 3 :(得分:2)
这是一个删除所有恼人的ascii字符的功能,唯一的例外是"&"用"和"代替。我用它来监管文件系统并确保所有文件都遵循我坚持每个人都使用的文件命名方案。
def cleanString(incomingString):
newstring = incomingString
newstring = newstring.replace("!","")
newstring = newstring.replace("@","")
newstring = newstring.replace("#","")
newstring = newstring.replace("$","")
newstring = newstring.replace("%","")
newstring = newstring.replace("^","")
newstring = newstring.replace("&","and")
newstring = newstring.replace("*","")
newstring = newstring.replace("(","")
newstring = newstring.replace(")","")
newstring = newstring.replace("+","")
newstring = newstring.replace("=","")
newstring = newstring.replace("?","")
newstring = newstring.replace("\'","")
newstring = newstring.replace("\"","")
newstring = newstring.replace("{","")
newstring = newstring.replace("}","")
newstring = newstring.replace("[","")
newstring = newstring.replace("]","")
newstring = newstring.replace("<","")
newstring = newstring.replace(">","")
newstring = newstring.replace("~","")
newstring = newstring.replace("`","")
newstring = newstring.replace(":","")
newstring = newstring.replace(";","")
newstring = newstring.replace("|","")
newstring = newstring.replace("\\","")
newstring = newstring.replace("/","")
return newstring
答案 4 :(得分:1)
str.replace("'","");
答案 5 :(得分:1)
正如现在多次指出的那样,你必须使用replace
或正则表达式(尽管你很可能不需要正则表达式),但如果你还需要确保结果字符串是纯ASCII(不包含像é,ò,μ,æ或φ这样的时髦字符),你终于可以做了
>>> u'(like é, ò, µ, æ or φ)'.encode('ascii', 'ignore')
'(like , , , or )'
答案 6 :(得分:0)
一种替代方案,它将接收一个字符串和一组不需要的字符
# function that removes unwanted signs from str
#Pass the string to the function and an array ofunwanted chars
def removeSigns(str,arrayOfChars):
charFound = False
newstr = ""
for letter in str:
for char in arrayOfChars:
if letter == char:
charFound = True
break
if charFound == False:
newstr += letter
charFound = False
return newstr
答案 7 :(得分:0)
我们说我们有以下列表:
states = [' Alabama ', 'Georgia!', 'Georgia', 'georgia', 'south carolina##', 'West virginia?']
现在我们将定义一个函数clean_strings()
import re
def clean_strings(strings):
result = []
for value in strings:
value = value.strip()
value = re.sub('[!#?]', '', value)
value = value.title()
result.append(value)
return result
当我们调用函数clean_strings(states)
结果如下:
['Alabama',
'Georgia',
'Georgia',
'Georgia',
'Florida',
'South Carolina',
'West Virginia']
答案 8 :(得分:0)
我可能迟到了答案,但我认为下面的代码也可以(达到极致) 它将删除所有不必要的字符:
a = '; niraj kale 984wywn on 2/2/2017'
a= re.sub('[^a-zA-Z0-9.?]',' ',a)
a = a.replace(' ',' ').lstrip().rstrip()
这将给
'niraj kale 984wywn on 2 2 2017'