# 提取字符串末尾数字
z = '''
秦始皇1.2
冯诺依曼2.3
李世民1.3
哥白尼2.1
大禹1.1
护肤宝3.2
图灵2.4
大宝sod蜜3.1
普33朗克2.2
康熙1.4
舒肤佳3.3
'''
import re
# 提取字符串末尾数字
z = '''
秦始皇1.2
冯诺依曼2.3
李世民1.3
哥白尼2.1
大禹1.1
护肤宝3.2
图灵2.4
大宝sod蜜3.1
普33朗克2.2
康熙1.4
舒肤佳3.3
'''
name_list=z.split('\n')
new=[]
for i in name_list:
res=re.search('[1-9]\d*\.\d*|0\.\d*[1-9]\d*$',i)
if res:
num=res.group()
new.append(num)
print(new)
#先分割成list
dd=z.split('\n')
del dd[0]
del dd[-1]
for i in range(len(dd)):
for j in range(len(dd[i])):
#判度数字后面出现 .就保留下来
if dd[i][j].isdigit():
if dd[i][j+1]=='.':
dd[i]=dd[i][j:len(dd[i])]
break
else:
continue
else:
continue
稍微有点绕,考虑进去了纯文本与纯数字
# 提取字符串末尾数字
z = '''
秦始皇1.2
冯诺依曼2.3
李世民1.3
哥白尼2.1
大禹1.1
护肤宝3.2
图灵2.4
大宝sod蜜3.1
普33朗克2.2
康熙1.4
舒肤佳3.3
1.2
纯文本
'''
strs = z.split("\n")
result = []
for string in strs:
for index in range(1, len(string)+1):
# 从最后开始检索,碰到既不为.又不在“0”与“9”之间则停止
if not (string[-index] == "." or (string[-index] >= "0" and string[-index] <= "9")):
# 检索一开始(行尾)为汉字
if index == 1:
break
result.append(string[-index+1:])
break
# 检索到最后(即行首)还是符合
if index == len(string):
result.append(string[:])
print(result)