高效清理 symbols/whitespace
Cleaning away symbols/whitespace efficiently
我有"- memphis , tn! "
、"~~~memphis,tn"
、":) memphis , tn (:"
、". - memphis,tn - ."
、"memphis tn?"
等字符串。我想清理这些字符串中的每一个,使每个字符串都变成 "memphis,tn"
。目前,我使用下面的代码,但是有没有更有效的方法呢?也许使用正则表达式?
请注意,我目前遇到的问题是特殊字符的排序会影响最终结果。例如,". - memphis,tn - ."
给出了正确的结果,而 "- . memphis,tn . -"
则没有。这不是故意的。如果它可以作为副作用修复,那就太好了!
这些字符串是纯 ASCII,我可能想删除比下面的更多的特殊字符。
编辑:
抱歉,我应该注意到并非所有字符串都具有 "x,y" 格式。还应清除诸如“-- New York City --”或“* Texas *”之类的字符串。
# remove emoticons
smileys = [":)",":\",":(",";)",
"(:","\:","):","(;"]
for s in smileys:
loc = loc.replace(s, '')
# cleaning whitespace uses
loc = ' '.join(loc.split())
loc = loc.strip()
loc = loc.replace(' ,', ',')
loc = loc.replace(', ', ',')
loc = loc.replace(' .', '.')
loc = loc.replace('. ', '.')
# clean special symbols off the sides
symbols = '.,!-#~*^?@" '
loc = loc.strip(symbols)
您可以使用
','.join(y for y in re.split("[- ,!~?]", x) if y)
^^
||
List all the symbols here
Python代码
y = ["- memphis , tn! ", "~~~memphis,tn", ":) memphis , tn (:", ". - memphis,tn - .", "memphis tn?", ". - memphis,tn - .", "- . memphis,tn . -"]
for x in y:
print(','.join(y for y in re.split("[- ,!~?:;)(.]", x) if y))
如果要删除字母数字以外的任何符号,可以使用
print(','.join(y for y in re.split("_|[^\w]", x) if y))
我有"- memphis , tn! "
、"~~~memphis,tn"
、":) memphis , tn (:"
、". - memphis,tn - ."
、"memphis tn?"
等字符串。我想清理这些字符串中的每一个,使每个字符串都变成 "memphis,tn"
。目前,我使用下面的代码,但是有没有更有效的方法呢?也许使用正则表达式?
请注意,我目前遇到的问题是特殊字符的排序会影响最终结果。例如,". - memphis,tn - ."
给出了正确的结果,而 "- . memphis,tn . -"
则没有。这不是故意的。如果它可以作为副作用修复,那就太好了!
这些字符串是纯 ASCII,我可能想删除比下面的更多的特殊字符。
编辑: 抱歉,我应该注意到并非所有字符串都具有 "x,y" 格式。还应清除诸如“-- New York City --”或“* Texas *”之类的字符串。
# remove emoticons
smileys = [":)",":\",":(",";)",
"(:","\:","):","(;"]
for s in smileys:
loc = loc.replace(s, '')
# cleaning whitespace uses
loc = ' '.join(loc.split())
loc = loc.strip()
loc = loc.replace(' ,', ',')
loc = loc.replace(', ', ',')
loc = loc.replace(' .', '.')
loc = loc.replace('. ', '.')
# clean special symbols off the sides
symbols = '.,!-#~*^?@" '
loc = loc.strip(symbols)
您可以使用
','.join(y for y in re.split("[- ,!~?]", x) if y)
^^
||
List all the symbols here
Python代码
y = ["- memphis , tn! ", "~~~memphis,tn", ":) memphis , tn (:", ". - memphis,tn - .", "memphis tn?", ". - memphis,tn - .", "- . memphis,tn . -"]
for x in y:
print(','.join(y for y in re.split("[- ,!~?:;)(.]", x) if y))
如果要删除字母数字以外的任何符号,可以使用
print(','.join(y for y in re.split("_|[^\w]", x) if y))