免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7168 | 回复: 2

python自定义正则表达式无法找到正确结果 [复制链接]

论坛徽章:
0
发表于 2019-06-05 14:33 |显示全部楼层
我自己定义了一个任意数字(整数,小数,科学计数)的匹配字符串,想用来匹配一个含有数字的字符,结果失败,程序如下:
import re
number=r'(?:[+-]?)(?:[0-9]+)|(?:[0-9]*[.][0-9]+)(?:[eE][+-]?[0-9]+)?'
a='100V_ch1'
b=1
search=re.search(r'('+number+r'v?)'+r'\s*[_-]?\s*Ch\s*'+str(b),str(a),re.I)
if search:
    print(search.group())
else:
    print('fail')
search=re.search(r'((?:[+-]?)(?:[0-9]+)|(?:[0-9]*[.][0-9]+)(?:[eE][+-]?[0-9]+)?v?)\s*[_-]?\s*Ch\s*1',str(a),re.I)
if search:
    print(search.group())
else:
    print('fail')


两种方式都失败,我想用复杂的正则表达式匹配数字(在我的程序里通用),为什么连这个简单的'100V_ch1'都无法匹配?我以前是写perl的,我用的这个正则在perl里可以很好的运行。

论坛徽章:
0
发表于 2019-06-06 15:00 |显示全部楼层
你这为啥这么复杂?

>>> number = r'\d+\.?\d*[eE]?[-+]?\d+'
>>> re.search(number + 'v_ch1', str(a),re.I).group()
'100V_ch1'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP