re.findall 的匹配规则不能包含或关系,例如:

sentence = u"合同生效"
res = re.findall(u"合同(生效|履行).*?", sentence)
print(res)
# ['生效']
instruction = u"基金合同于2020年3月18日生效"
effective_date = re.findall(u"基金合同已?于\d{4}年\d{1,2}月\d{1,2}日正?式?生效", instruction)[0]
print(effective_date)
# 基金合同于2020年3月18日生效effective_date = re.findall(u"基金合同已?于\d{4}年\d{1,2}月\d{1,2}日(正?式)?生效", instruction)[0]
print(effective_date)
# 可观察到打印结果为空instruction = u"基金合同于2020年3月18日生效"
effective_date = re.findall(u"基金合同已?于\d{4}年\d{1,2}月\d{1,2}日正式生效|生效", instruction)[0]
print(effective_date)
# 生效
说明,"|"操作的是u"基金合同已?于\d{4}年\d{1,2}月\d{1,2}日正式生效" 和 u"生效"。

能用方括号 [],就不用圆括号加或 (|),比如 [%%﹪]【%%%%%%%】

结论,re.findall不能操作带圆括号的模式,更别谈(x|y)之类的模式,否则可能匹配不到想要的结果。

re.findall的正则参数为什么不能包含元组表达式()或竖线符号,先挖个坑相关推荐

  1. Java正则校验密码至少包含:字母数字特殊符号中的2种

    一.语法 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如, n匹配字符 n.\n 匹配换行符.序列 \\\\ 匹配 \\ ,\\( 匹配 (. ^ 匹配输入字符串开始的位 ...

  2. js正则 6-20位只能包含 字母 或者字母+数字 必须字母开头

    let reg = /^[a-zA-Z]\w{5,19}$/; js正则 6-20位只能包含 字母 或者字母+数字 必须字母开头

  3. 正则表达式 密码需至少包含数字、字母、符号中的2种

    let reg=/((?=.*\d)(?=.*\D)|(?=.*[a-zA-Z])(?=.*[^a-zA-Z]))(?!^.*[\u4E00-\u9FA5].*$)/ let value=`12345 ...

  4. C++代码片段(二)判断可变模板参数中是否包含某一特定类型

    首先定义基础模板类,表示不包含给定类型 template <typename T, typename... Args> struct contains : public std::fals ...

  5. php正则匹配域名不包含端口_3分钟短文 | PHP极速匹配子字符串,你是怎么做的?...

    引言 在项目开发中我们经常会遇到这样的需求,比如用户提交的表单中含有一些文本的内容.我们需要在后台为其进行关键词过滤处理. 那么问题来了,如何在海量的字符串中快速的匹配一些子字符串呢?今天我们就给大家 ...

  6. 接口测试--apipost解决传递json参数时字符串包含有@和/的问题

    使用apipost进行接口测试的时候,传递json参数的时候字符穿中包含有@和/的时候就无法进行正常的访问. 是因apipost支持json参数使用内置mock字段,解决办法是在设置里面,把自动识别请 ...

  7. js正则验证人名,包含· | 手机号正则验证(199)

    姓名验证(包含中间带点格式 ): /^[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,20}$/ 手机格式验证(199.移动198.联通166号): /^(13[0-9]|14[5- ...

  8. 正则密码验证,包含数字、字母、特殊符号

    由于系统上线测试,密码复杂度验证未通过,需要设置密码复杂度,通过百度等途径找到一个合适的正则. 1,长度8-16位,必须包含数字字母特殊符号 /(?=.*[a-z])(?=.*\d)(?=.*[#@! ...

  9. php调用字符串函数参数,如何从包含参数的变量中存储的字符串调用PHP函数

    我从这里找到了问题.但我需要用参数调用函数名.我需要能够调用一个函数,但是函数名存储在一个变量中,这是可能的吗?例如: function foo ($argument) { //code here } ...

  10. 手机号正则判断最新版 包含199、198、166开头的号码

    如果不及时更新手机号判断正则可能会造成运营商新获得的号段无法通过验证,下面就是新的正则验证方法: + (BOOL)checkUserTelNumber:(NSString *)telNumber {i ...

最新文章

  1. vs2010 静态使用 opencv 2.46 库
  2. pipe 双管道 简易实现代码
  3. 思维导图学 Linux Shell攻略之小试牛刀篇
  4. python-管理MySQL之ConfigParser模块
  5. android 之RadioButton单选控件
  6. 【产品功能】价格信息支持下载
  7. 正式生产库,配置双节点的RAC + 单实例的 DATAGUARD
  8. 如何学习微信公众平台的开发?
  9. python logging使用_Python实战之logging模块使用详解
  10. 明明还有空间,硬盘却写不进去了!
  11. Java8————方法引用
  12. idea 查看jsp是否被引用_IDEA集成Java性能分析神器JProfiler
  13. grep 多模式匹配
  14. idea 创建多模块项目子模块为灰色
  15. Atiitt uke兼wag集团2017年度成果报告总结 attilax著 1. 组织机构进一步完善 8大首席部门 1 2. 事业部进一步完善,以及一百多个事业部了 1 3. 企业文化进一步完善 1
  16. 51单片机实现计算器程序
  17. 什么样的人适合学web前端?
  18. 1658 页的《Java 面试突击核心讲》在牛客网火了,完整版 PDF 开放下载!
  19. oracle删除重复数据-百万级别数据以上情况
  20. 导师吐槽:我怎么摊上了这么个极品研究生!

热门文章

  1. 官网下载keil MDK最新版本、历史版本和芯片pack包
  2. Linux学习笔记五:arm-2009q3交叉编译环境安装、U盘拷贝文件到开发板
  3. 第 7 章 缓存应用程序块
  4. Codeforces Round #535 (Div. 3) 解题报告
  5. 浏览器宽度和高度的说明
  6. 又联考了一场,感觉自己好菜啊,T1没写出来,后来花了一个早上调试。QAQ。最后发现是个-1还有取模没打。。。TAT。。。难受极了!!!...
  7. Web3D编程入门总结——WebGL与Three.js基础介绍
  8. 在InstallShield中发布单一的Setup.exe文件
  9. hdu 3600 Simple Puzzle (判断N 数码是否有解)
  10. NET常出现的三十三种代码(1)