使用正则表达式的技巧

import re

# 从"1-2*(60+(-40.35/5)-(-4*3))"中取整数
ret=re.findall(r"\d+","1-2*(60+(-40.35/5)-(-4*3))")
print(ret) #[‘1‘,‘2‘,‘60‘, ‘40‘,‘35‘,‘5‘,‘4‘,‘3‘] 把40.35当成两个数了
# 你要匹配的内容太没有特点了 容易和你不想匹配的内容混在一起


ret= re.findall(r"\d+\.\d+|\d+","1-2*(60+(-40.35/5)-(-4*3))")
print(ret)#[‘1‘, ‘40.35‘,‘3‘] 已经把小数问题解决了,但是还是不对


ret= re.findall(r"\d+\.\d+|(\d+)",‘‘, ‘5‘,‘3‘]
# 通过优先显示已经把小数过滤掉了,但是为什么会有空字符串呢,可以把|两边都加上括号看下


ret= re.findall(r"(\d+\.\d+)|(\d+)","1-2*(60+(-40.35/5)-(-4*3))")
print(ret)#[(‘‘,‘1‘),(‘‘,‘2‘),‘60‘),(‘40.35‘,‘‘),‘5‘),‘4‘),‘3‘)]
# 元组里左边显示的是小数,右边显示的是整数.
# 现在可以把上一个再优化一下


ret= re.findall(r"\d+\.\d+|(\d+)",‘‘,‘3‘]
ret.remove("") #把空字符串去掉
print(ret) #[‘1‘,‘3‘]
# 这回就拿到了所有的整数了

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...