我如何编写一个简单的python函数,它接受一个字符串并通过将semis和破折号替换为空格来修复它?例如:
我相信我可以使用正则表达式(来自谷歌搜索),但我不确定它是如何工作的?我认为正则表达式比手动解析它更容易,更简洁?感谢
答案 0 :(得分:4)
如果你想使用正则表达式,你可以这样做:
>>> import re
>>> re.sub('[;-]', ' ', string)
'This is an example string'
OTOH,正则表达式在这里似乎有些过分。您可以链接两个str.replace
调用,或使用str.translate
(python3.x)。
>>> string.translate(str.maketrans(dict.fromkeys(';-', ' ')))
'This is an example string'
对于python2.x,您首先import string as st
,然后以相同方式调用st.maketrans
。
translate
优于replace
的优势在于它非常快,无论要替换的数量/类型如何,都只需要一次通话。
答案 1 :(得分:0)
您可以在python中使用re.sub()
来查找字符串中的模式并将其替换为其他模式。在这种情况下,您可以查找模式[a-z&A-Z&0-9]
如果字符串中存在除这些字符之外的其他字符,则用空格替换它。
re.sub(pattern, repl, string)
import re
value = "This;is;an-example-string output string:"
new_value = re.sub('[^a-zA-Z0-9 \n\.]', ' ', value)
print (new_value)