6.1. re模块搜索时要注意竖线"|"的使用

某次,对于字符串footerUni=u"分类: | 标签:";

使用:foundCatZhcn = re.search(u"分类:(?P.+)|", footerUni);

print "foundCatZhcn=",foundCatZhcn;

if(foundCatZhcn):

print "foundCatZhcn.group(0)=",foundCatZhcn.group(0);

print "foundCatZhcn.group(1)=",foundCatZhcn.group(1);

catName = foundCatZhcn.group("catName");

print "catName=",catName;

所得到的结果却是:foundCatZhcn= <_sre.SRE_Match object at 0x027E3C20>

foundCatZhcn.group(0)=

foundCatZhcn.group(1)= None

catName= None

其中group(0),不是所期望的整个匹配的字符串,且group(1)应该是一个空格的字符,而不是None。

调试了半天,最后终于找到原因了,原来是在正则搜索中,竖线"|",是or的关系“'|'

A|B, where A and B can be arbitrary REs, creates a regular expression that will match either A or B. An arbitrary number of REs can be separated by the '|' in this way. This can be used inside groups (see below) as well. As the target string is scanned, REs separated by '|' are tried from left to right. When one pattern completely matches, that branch is accepted. This means that once A matches, B will not be tested further, even if it would produce a longer overall match. In other words, the '|' operator is never greedy. To match a literal '|', use \|, or enclose it inside a character class, as in [|].”

所以此处匹配到的结果是空值

所以测试过程中,无论如何修改re中的表达式,也都会得到foundCatZhcn是非空的值

然后对应的解决办法是,给竖线加上反斜杠,表示竖线字符本身:foundCatZhcn = re.search(u"分类:(?P.*?)\|", footerUni);

这样才能真正自己想要的效果。

python竖线_6.1. re模块搜索时要注意竖线|的使用相关推荐

  1. python中glob模块怎么下_如何在Python中使用glob.glob模块搜索子文件夹?

    如何在Python中使用glob.glob模块搜索子文件夹? 我想在文件夹中打开一系列子文件夹,找到一些文本文件并打印一些文本文件行. 我用这个: configfiles = glob.glob('C ...

  2. Python学习(六)模块

    Python 模块 模块定义 随着程序越来越庞大,需要分隔成几个文件:也需要能在不同文件中复用函数.类和变量,而不是拷贝代码.为了满足这些需要,Python提供了模块. 简单来说,模块就是一个保存了P ...

  3. python模块搜索路径 (sys.path)

    导入一个叫 spam 的模块时,解释器先在当前目录中搜索名为 spam.py 的文件,然后在环境变量 PYTHONPATH 表示的目录列表中搜索,然后是环境变量 PATH 中的路径列表.如果 PYTH ...

  4. python-模块入门二(模块循环导入,区分python文件的两种用途,模块搜索路径,软件开发的目录规范)...

    一.模块的循环导入问题 run.py # import m1 # 第一次导入 m1.py # 错误示范 ''' print('正在导入m1') from m2 import y #第一次导入m2 x= ...

  5. python import sql脚本_13-模块介绍-import两种方式-py文件的两种用途-模块搜索路径-项目开发的目录规范...

    1.模块的介绍与使用模块import 1.1.模块的介绍 1.1.1.什么是模块? 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能.在python中,模块的使用方式都是一样的,但其 ...

  6. 【Python】Python3.7.3 - sys.path 模块搜索路径详解

    文章目录 系统参考 sys.path - 模块搜索路径 用户站点目录(user site directory) 安装包到用户站点目录 第三方站点目录 site.py介绍 python启动选项 PYTH ...

  7. 用 .pth 文件附加 Python 模块搜索路径

    上一篇 Python 的模块搜索路径,介绍了 Python 的模块搜索路径,最终起作用的是 sys.path 路径列表.如果要自定义自己的搜索路径,就是要怎么定制 sys.path 的内容.可以简单的 ...

  8. python 模块 导入机制 模块搜索 Python包 发布python模块或程序

    python 模块 python模块:以.py结尾的代码文件.        顶层文件: 程序执行入口        模块文件1        模块文件2        模块文件3 在python中一 ...

  9. python如何跨模块调用变量_Python跨模块用户定义的全局变量:在其他模块运行时调用它们的问题...

    我对Python相当陌生,目前正在学习如何在Python程序中使用函数和多个模块.在 我有两个模块"Functions_Practice_Main"(运行菜单)和"Fun ...

  10. Python编程语言学习:包导入和模块搜索路径简介、使用方法之详细攻略

    Python编程语言学习:包导入和模块搜索路径简介.使用方法之详细攻略 目录 包导入和模块搜索路径简介 1.Pyhon搜索模块路径的机制 2.自定义配置搜索路径

最新文章

  1. 表单高级应用和语义化
  2. 面试必备杀技:SQL查询专项训练!
  3. 网络推广营销之网站优化选择优质友情链接的标准
  4. 投屏画面尺寸拉伸怎么办_手机投屏转换器设置方法图文教程
  5. FactoryBean
  6. php生成链接列表,根据URL链接和抛文本生成链接a标签的PHP函数
  7. python使用t-sne算法降维,方便可视化
  8. 3D视界迎来全息视角,VR呈现效果海报,引领未来
  9. TensorFlow工作笔记003---python异常大全IndentationError: unexpected indent_expected indented block
  10. 解读现代存储系统背后的经典算法
  11. 如何判断你和优秀AI算法工程师之间的差异?
  12. webstorm中文版修改
  13. 深圳:由“独角兽”们构建起的硬核科技之城
  14. AI 程序员码说摄影图像基础
  15. 打开word很慢(无网络时正常)
  16. SIGBUS:BUS_ADRERR for stack access violation in memcpy
  17. Vue开发实例(11)之el-menu实现左侧菜单导航
  18. 【Vue学习总结】22.使用Mint UI的infinite-scroll实现上拉分页加载
  19. XX nm制造工艺是什么概念?实现7nm制程工艺为什么这么困难?
  20. 视频封装格式以及编码格式说明

热门文章

  1. 神经元的结构是?包括髓鞘吗?|小白心理-347/312考研答疑
  2. 解决Windows 10 无法安装.msi文件的办法
  3. Xftp的下载、安装、使用
  4. 怎么使用7zip进行分批压缩_7z解压软件(7-zip)分卷压缩怎么做?
  5. 新建的module没有蓝色小块
  6. 利用135端口快速入侵个人PC电脑
  7. 基础知识——PMIC
  8. chemdraw怎么连接两个结构_用ChemDraw连接两个结构片段的教程
  9. 怎么把字母缩小当符号_必收藏干货!谭编教你轻松输入这些论文中的特殊符号:...
  10. 协同办公笔记软件综合评测:飞书、语雀、Notion、FlowUs、Wolai