正则表达式技巧

1. 去除emoji

emoji_pattern = re.compile(u'['
        u'\U0001F300-\U0001F64F'
        u'\U0001F680-\U0001F6FF'
        u'\u2600-\u2B55]+',
        re.UNICODE)

参考
https://segmentfault.com/a/1190000007594620
https://apps.timwhitlock.info/emoji/tables/unicode#block-6c-other-additional-symbols

2. 匹配包含某些字符同时不包含某些字符

例子1: 匹配包含error不包含error前后的abc

p = re.compile(r'^((?!abc).)*error((?!abc).)*$')
print p.search("123abc123error123")
print p.search("123ab123error123")
结果:
None
<_sre.SRE_Match object at 0x7f129ce81a08>

例子2: 匹配包含error不包含多个字符串,比如abc和def

p = re.compile(r'error((?!(abc|def)).)*$')
print p.search("error123abc234")
print p.search("error123ab234")
print p.search("error123def234")
结果:
None
<_sre.SRE_Match object at 0x7f87973eccf0>
None

例子3: 匹配“重置密码”或“密码重置”等,同时不匹配“重置密码后,密码是什么”这样的

p = re.compile('.*?(改|修改|重置|设置|忘)+.*?(密码)+((?!是|查|为|看).)*$|(密码)+.*?(改|修改|重置|设置|忘)+((?!是|查|为|看).)*$')

参考:https://blog.51cto.com/14335413/2433616?source=dra

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Emoji 实战问题:iOS,Android,Server 2016-05-27 11:34编辑:lansekua...
    IceWall_Rin阅读 2,250评论 0赞 6
  • 原文地址 1999年,栗田穣崇发明了emoji,是一种适应移动的语言符号,覆盖几乎所有的人类表情。现在,改进Uni...
    5516f553a4ca阅读 1,926评论 0赞 0
  • 运输层: 1、运输层为应用进程之间提供端到端的逻辑通信。(网络层是为主机之间提供逻辑通信) 2、运输层还要对收到的...
    LayneWang阅读 625评论 0赞 0
  • 苏霍姆林斯基在《给教师的建议》中说:“教师所知道的东西,就应当比他在课堂上要讲的东西多十倍,以便能够应付自如地掌握...
    侯志敏谈文学阅读 2,868评论 2赞 18
  • 心灵自由第八期 第17篇 早上醒来,发现书桌上有一副画,这个女儿昨晚深夜的作品。 细细端详,在左上角有一行小字:希...
    有花果的无花果阅读 346评论 3赞 2

友情链接更多精彩内容