<p>下面是一个示例,用于提取患者数据和任何匹配的Gleason数据。在</p>
<pre><code>from pyparsing import *
num = Word(nums)
accessionDate = Combine(num + "/" + num + "/" + num)("accDate")
accessionNumber = Combine("S" + num + "-" + num)("accNum")
patMedicalRecordNum = Combine(num + "/" + num + "-" + num + "-" + num)("patientNum")
gleason = Group("GLEASON" + Optional("SCORE:") + num("left") + "+" + num("right") + "=" + num("total"))
assert 'GLEASON 5+4=9' == gleason
assert 'GLEASON SCORE: 3 + 3 = 6' == gleason
patientData = Group(accessionDate + accessionNumber + patMedicalRecordNum)
assert '01/02/11 S11-4444 20/111-22-3333' == patientData
partMatch = patientData("patientData") | gleason("gleason")
lastPatientData = None
for match in partMatch.searchString(data):
if match.patientData:
lastPatientData = match
elif match.gleason:
if lastPatientData is None:
print "bad!"
continue
print "{0.accDate}: {0.accNum} {0.patientNum} Gleason({1.left}+{1.right}={1.total})".format(
lastPatientData.patientData, match.gleason
)
</code></pre>
<p>印刷品:</p>
^{pr2}$