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

How do I strip combination of numbers and period in string in python?

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

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

到目前为止,我已经尝试了以下方法,

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

'I want to delete everything until the first hyphen.' 这听起来像是一项简单的任务,但我正在经历一个学习曲线。请帮忙!

如果您所有的字符串都以相同的方式格式化,您可以使用 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

您可以 find() 第一个 '-' 然后从那个点开始切片:

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

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

你得到 'abcd1_0-def-ghi-4567'

一个regex-based解决方案合集:

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