如何在python中删除字符串中数字和句点的组合?

时间:2017-02-07 04:59:22

标签: python replace strip

我有一个字符串,如下所示。它们是IP地址和系统名称的组合。 我想剥离字符串的IP地址部分,这是第一个连字符之前的所有内容。

str = "12.345.678.9-abcd1_0-def-ghi-4567"

到目前为止,我已尝试过以下,

str.replace('\D+', '') 
str.lstrip('\D+', '')
str.rstrip('\D+', '') 

'我要删除所有内容,直到第一个连字符。'这听起来像一个简单的任务,但我正在经历一个学习曲线。请帮忙!

4 个答案:

答案 0 :(得分:1)

如果所有字符串都以相同的方式格式化,您可以使用str.split()方法在连字符上拆分字符串,删除结果列表中的第一项,然后使用str.join()再次组合它的方法如下:

string = "12.345.678.9-abcd1_0-def-ghi-4567".split("-")[1:]
>>> ['abcd1_0', 'def', 'ghi', '4567']
joined_str = "-".join(string)
>>> abcd1_0-def-ghi-4567

答案 1 :(得分:0)

你可以find()第一个'-',然后从那一点开始:

>>> s = '12.345.678.9-abcd1_0-def-ghi-4567'
>>> s[s.find('-')+1:]
'abcd1_0-def-ghi-4567'

答案 2 :(得分:0)

试试这个:     进口重新     m = re.search('\ d + - (。*)',s).group(1)

你得到了     'abcd1_0-DEF-GHI-4567'

答案 3 :(得分:0)

基于正则表达式的集合解决方案:

re.findall(r'[^-]+-(.+)',s)[0]
#'abcd1_0-def-ghi-4567'