我的字符串用点分隔。 例如:
string1 = 'one.two.three.four.five.six.eight'
string2 = 'one.two.hello.four.five.six.seven'
如何在python方法中使用此字符串,将一个单词指定为通配符(因为在这种情况下,例如第三个单词会有所不同)。我正在考虑正则表达式,但不知道在python中是否可以考虑我的方法。 例如:
string1.lstrip("one.two.[wildcard].four.")
或
string2.lstrip("one.two.'/.*/'.four.")
(我知道我可以通过split('.')[-3:]
提取这个,但我正在寻找一种通用方法,lstrip只是一个例子)
答案 0 :(得分:23)
使用re.sub(pattern, '', original_string)
从 original_string 中删除匹配的部分:
>>> import re
>>> string1 = 'one.two.three.four.five.six.eight'
>>> string2 = 'one.two.hello.four.five.six.seven'
>>> re.sub(r'^one\.two\.\w+\.four', '', string1)
'.five.six.eight'
>>> re.sub(r'^one\.two\.\w+\.four', '', string2)
'.five.six.seven'
顺便说一下,你误解了str.lstrip
:
>>> 'abcddcbaabcd'.lstrip('abcd')
''
str.replace
更合适(当然, re.sub ):
>>> 'abcddcbaabcd'.replace('abcd', '')
'dcba'
>>> 'abcddcbaabcd'.replace('abcd', '', 1)
'dcbaabcd'