# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(无|否认)(既往)?[^,。,.]{2,6}过敏史"
test_str = "患者既往体质尚可,否认有“高血压、糖尿病、冠心病”等慢性病病史,否认心、肝、脑、肺、肾“等重大脏器疾病史,否认”肝炎、肺结核等传染病史,否认其他重大手术及外伤史,否认输血及中毒史,呋喃唑酮过敏史,过敏表现:皮疹瘙痒、全身浮肿,否认食物药物过敏史"
matches = re.finditer(regex, test_str, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html