目标:创建ICD-10代码的正则表达式.
格式化
Letter,Digit,( Letter或Digit),.,最多4个字母或数字我上半场的大部分时间都是:
r'[A-Z][0-9][0-9]'后半段我被困住了:
([a-z]|[0-9]){1,4}$如果有生成的东西,它必须有一个点.。
例如:.0或.A9或.A9A9或.ZZZZ或.9999等。
注:我知道一些ICD-10码不会超过某个数字/字母,但我对此没有意见。
发布于 2022-03-09 14:16:05
您可以使用
^[A-Z][0-9][A-Z0-9](?:\.[A-Z0-9]{1,4})?$见regex演示。详细信息
^ -字符串锚的启动[A-Z] -大写ASCII字母[0-9] - ASCII唯一的数字[A-Z0-9] -大写字母或ASCII数字(?:\.[A-Z0-9]{1,4})? -一个可选的序列\. -a点[A-Z0-9]{1,4} -一个大写字母或一个ASCII数字出现一到四次$ -字符串锚点的末端(也可以在这里使用\Z )。在Python代码中,可以使用以下方法验证字符串输入:
icd10_rx = re.compile(r'[A-Z][0-9][A-Z0-9](?:\.[A-Z0-9]{1,4})?')
if icd10_rx.fullmatch(text):
print(f'{text} is valid!')注意,由于Pattern.fullmatch (与re.fullmatch相同)需要一个完整的字符串匹配,所以没有锚。
https://stackoverflow.com/questions/71410627
复制相似问题