如何去除 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'
我有一列字符串如下所示。它们是 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'