如何在分号前面捕获除法和忽略

时间:2016-07-03 03:33:27

标签: python regex

pattern = r'(\S+)\s*(![;])/\s*(\S+)'
regex = re.compile(pattern,re.DOTALL)
for result in regex.findall(data):
    f.write("Division" + str(result)+ "\n\n\n") 

我正在使用以下表达式来捕获何时发生除法但是当除法符号前面有“;”时要忽略。这个正则表达式无法正常工作

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

使用negative look-behind assertion

pattern = r'(\S+)\s*(?<!;)/\s*(\S+)'
    仅当(?<!;)/前面没有/ 时,
  • /才会与;匹配
>>> re.findall(r'(\S+)\s*(?<!;)/\s*(\S+)', '1/2  and 1;/4  12 / 6')
[('1', '2'), ('12', '6')]
相关问题