我想在一个正则表达式中从字符串1和字符串2中提取字符串“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:LKR\w+\-\>(.*?)\:',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)
任何人都可以帮我完成代码吗? 谢谢
答案 0 :(得分:1)
试试这个正则表达式:
(?<=->)\d+
<强> Click for Demo 强>
<强>解释强>
(?<=->)
- 找到紧靠->
\d+
- 匹配1个以上的数字或者,使用此正则表达式:
(LKR\d+)->(\d+)
<强> Click for Demo 强>
从此正则表达式中,对于每个匹配,您可以提取组1的内容并检查它是LKR1000
,LKR500
,LKR100
并从组2中获取其对应的值匹配
答案 1 :(得分:0)
以下正则表达式应该说:r"LKR\d+->(\d+)"
:
re.findall(r"LKR\d+->(\d+)",s1)
#['981', '1922', '1849', '1819']
re.findall(r"LKR\d+->(\d+)",s2)
#['981', '1922', '1849', '1819']