用于在 python 中识别医疗受益人标识符 (MBI) 的正则表达式
Regex to identify a Medical Beneficiary Identifier(MBI) in python
所以我正在尝试为 python 中的 MBI(医疗受益人标识符)创建一个正则表达式,但我的正则表达式不起作用。
MBi 的任何示例是:1EG4-TE5-MK73
这是 MBI 的格式:
11 个字符
MBI的第2个、第5个、第8个和第9个字符永远是一个字母。
字符 1、4、7、10 和 11 始终是数字。
我尝试使用以下正则表达式但无济于事:
mbi=re.compile(r"[1-9]{1}[^SLOIBZsloibz|^0-9]{1}[^SLOIBZsloibz]{1}[0-9]{1}-?[^SLOIBZsloibz|^0-9]{1}[^SLOIBZsloibz]{1}[0-9]{1}-?[^SLOIBZsloibz|^0-9]{1}[^SLOIBZsloibz|^0-9]{1}[0-9]{1}[0-9]{1}")
有什么建议吗?!?!
好的,根据您的正则表达式,您尝试做的某些事情在语法上是不正确的。当您希望它只发生一次时,不需要通过花括号进行量化,因为 {1}
变得多余。所以我从你的正则表达式中删除了这部分。你的字符集中的第二件事,
[^SLOIBZsloibz|^0-9]
正如我所见,您想要取反某些字母和 0-9 数字。使用字符集 []
时不必应用交替。除了否定字符集中的那些字母外,如果你还想否定 0-9 数字,你只需要把它放在那里,你想要的正确字符集就变成了,
[^SLOIBZsloibz0-9]
在你的正则表达式中应用这些更正后,你的正则表达式变成了这个,我猜这就是你需要的。
^[1-9][^SLOIBZsloibz0-9][^SLOIBZsloibz][0-9]-?[^SLOIBZsloibz0-9][^SLOIBZsloibz][0-9]-?[^SLOIBZsloibz0-9][^SLOIBZsloibz0-9][0-9][0-9]$
让我知道这是否适合您。
Here is the format to MBIs:
- 11-Characters
- The MBI’s 2nd, 5th, 8th, and 9th characters will always be a letter.
- Characters 1, 4, 7, 10, and 11 will always be a number.
没有提及 3rd 和 6th 字符,但根据您的示例,您可以使用如下正则表达式:
\b\d[A-Z]{2}\d-[A-Z]{2}\d-[A-Z]{2}\d{2}\b
正则表达式解释:
我添加了一些 \-
所以它不会将哈希算作有效的字母数字字符。
^[1-9][^SLOIBZsloibz0-9][^SLOIBZsloibz][0-9]-?[^SLOIBZsloibz0-9\-][^SLOIBZsloibz\-][0-9]-?[^SLOIBZsloibz0-9\-][^SLOIBZsloibz0-9\-][0-9][0-9]$
所以我正在尝试为 python 中的 MBI(医疗受益人标识符)创建一个正则表达式,但我的正则表达式不起作用。
MBi 的任何示例是:1EG4-TE5-MK73
这是 MBI 的格式:
11 个字符
MBI的第2个、第5个、第8个和第9个字符永远是一个字母。
字符 1、4、7、10 和 11 始终是数字。
我尝试使用以下正则表达式但无济于事:
mbi=re.compile(r"[1-9]{1}[^SLOIBZsloibz|^0-9]{1}[^SLOIBZsloibz]{1}[0-9]{1}-?[^SLOIBZsloibz|^0-9]{1}[^SLOIBZsloibz]{1}[0-9]{1}-?[^SLOIBZsloibz|^0-9]{1}[^SLOIBZsloibz|^0-9]{1}[0-9]{1}[0-9]{1}")
有什么建议吗?!?!
好的,根据您的正则表达式,您尝试做的某些事情在语法上是不正确的。当您希望它只发生一次时,不需要通过花括号进行量化,因为 {1}
变得多余。所以我从你的正则表达式中删除了这部分。你的字符集中的第二件事,
[^SLOIBZsloibz|^0-9]
正如我所见,您想要取反某些字母和 0-9 数字。使用字符集 []
时不必应用交替。除了否定字符集中的那些字母外,如果你还想否定 0-9 数字,你只需要把它放在那里,你想要的正确字符集就变成了,
[^SLOIBZsloibz0-9]
在你的正则表达式中应用这些更正后,你的正则表达式变成了这个,我猜这就是你需要的。
^[1-9][^SLOIBZsloibz0-9][^SLOIBZsloibz][0-9]-?[^SLOIBZsloibz0-9][^SLOIBZsloibz][0-9]-?[^SLOIBZsloibz0-9][^SLOIBZsloibz0-9][0-9][0-9]$
让我知道这是否适合您。
Here is the format to MBIs:
- 11-Characters
- The MBI’s 2nd, 5th, 8th, and 9th characters will always be a letter.
- Characters 1, 4, 7, 10, and 11 will always be a number.
没有提及 3rd 和 6th 字符,但根据您的示例,您可以使用如下正则表达式:
\b\d[A-Z]{2}\d-[A-Z]{2}\d-[A-Z]{2}\d{2}\b
正则表达式解释:
我添加了一些 \-
所以它不会将哈希算作有效的字母数字字符。
^[1-9][^SLOIBZsloibz0-9][^SLOIBZsloibz][0-9]-?[^SLOIBZsloibz0-9\-][^SLOIBZsloibz\-][0-9]-?[^SLOIBZsloibz0-9\-][^SLOIBZsloibz0-9\-][0-9][0-9]$