我编写了以下程序来计算标记。是他们只找到标记的更好方法吗。
import re
string = """
Q1
|-->1
|-->1
|-->1
|-->1
|-->1
"""
pattern = '>.+n'
result = re.findall(pattern, string)
marks = 0
for x in result:
marks += int(x.replace('>', '').replace('n', ''))
#This thing does not look clean; it feels hacky
print(marks)
re.findall((返回的列表类似于
['>1n', '>1n', ...]
但我想要像这样的东西
['1', '1', ...]
我该怎么办?
我会在这里使用regex find-all方法:
string = """
Q1
|-->1
|-->1
|-->1
|-->1
|-->1
"""
grades = re.findall(r'-->(d+)', string)
print(grades) # ['1', '1', '1', '1', '1']