我有一个字符串,如下所示。它们是IP地址和系统名称的组合。 我想剥离字符串的IP地址部分,这是第一个连字符之前的所有内容。
str = "12.345.678.9-abcd1_0-def-ghi-4567"
到目前为止,我已尝试过以下,
str.replace('\D+', '')
str.lstrip('\D+', '')
str.rstrip('\D+', '')
'我要删除所有内容,直到第一个连字符。'这听起来像一个简单的任务,但我正在经历一个学习曲线。请帮忙!
答案 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'