regex 如何在Python中使用正则表达式获取子字符串

ca1c2owp  于 2023-01-31  发布在  Python
关注(0)|答案(2)|浏览(142)

我正在尝试公式化一个正则表达式来从下面两个字符串示例中获取ID:
1./药品/2/药品-19904 -5106/氧化镁片/详细信息
1./药物/2/药物-19906/氧化镁片/详细信息
在第一种情况下,我应该得到19904-5106,在第二种情况下,我应该得到19906。
到目前为止,我尝试了几个,我可以得到的关闭是[drugs/2/drug]-.*\d,但会返回g-19904-5106和g-19907。请帮助获得乘坐的“g-"?提前感谢您。

lxkprmvk

lxkprmvk1#

编写正则表达式时,请考虑您看到的模式,以便正确对齐表达式。例如,如果您知道所需的ID始终以类似ABCD-1234 - 5678的形式出现,其中1234-5678是所需的ID,则可以使用该ID。如果您还知道ID始终是数字,则可以进一步细化搜索
对于您的示例,使用如下正则表达式字符串

.+?-(\d+(?:-\d+)*)

应该可以做到这一点。在一个python脚本中,它看起来像下面这样:

match = re.search(r'.+?-(\d+(?:-\d+)*)', my_string)
if match:
    my_id = match.group(1)

这种模式可能会因示例的深度和复杂性而异,但这对您提供的两个示例都有效

oxiaedzo

oxiaedzo2#

这是我能找到的最接近的:\d +|.\d +-.\d +

相关问题