程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

为什么 .* 在 Python 正则表达式中不匹配完整字符串?[重复]

发布于2024-11-25 16:40     阅读(281)     评论(0)     点赞(17)     收藏(4)


运行此代码:

my_string = 'START\r\nwords\t" Quoted Words"\r\nmore12345\t$$symbols\r\n END'
pattern = '(.*)'
matches = re.match(pattern, my_string)
matches.groups(0)

我期望输出:

('START\r\nwords\t" Quoted Words"\r\nmore12345\t$$symbols\r\n END',)

但我得到:

('START\r',)

我怎样才能匹配整个字符串?


解决方案


需要使用re.DOTALL 标志来改变字符的行为.,默认情况下只匹配除 之外的字符\n

这将使代码变成:

my_string = 'START\r\nwords\t" Quoted Words"\r\nmore12345\t$$symbols\r\n END'
pattern = '(.*)'
matches = re.match(pattern, my_string, flags=re.DOTALL)
matches.groups(0)

输出结果与预期一致:

('START\r\nwords\t" Quoted Words"\r\nmore12345\t$$symbols\r\n END',)


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/2045890/23a965476693711a5104/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)