带有或功能的Python正则表达式



我想从一个正则表达式中提取字符串" 981"," 1922"," 1849"," 1819"。

 #string 1 
 :3:LKR5000->981:4:LKR1000->1922:5:LKR500->1849:6:LKR100->1819
 #string 2
 :1:LKR5000->981
 :2:LKR1000->1922
 :3:LKR500->1849:4:LKR100->1819

书面python代码:

   firstNote=re.findall(':d:LKRw+->(.*?):',strtosearch2,re.DOTALL)
   1000s=re.findall('LKR1000->(.*?):',strtosearch2,re.DOTALL)
   500s=re.findall('LKR500->(.*?):',strtosearch2,re.DOTALL)
   100s=re.findall('LKR100->(.*?)n',strtosearch2,re.DOTALL) 

谁能帮助我完成代码?谢谢

尝试以下等级:

(?<=->)d+

单击Demo

请参阅此处的代码

说明:

  • (?<=->)-积极的外观,以查找立场之前的位置 ->
  • d+-匹配1 数字的出现

或,使用此言论:

(LKRd+)->(d+)

单击Demo

从此正则匹配中,对于每场比赛,您可以提取组1的内容,并检查它是否为 LKR1000LKR500LKR100,并从该匹配项的组2中获取其相应的值

以下言论应该写: r"LKRd+->(d+)"

re.findall(r"LKRd+->(d+)",s1)
#['981', '1922', '1849', '1819']
re.findall(r"LKRd+->(d+)",s2)
#['981', '1922', '1849', '1819']

最新更新