推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
Luo2mk
V2EX  ›  Python

正则表达式求问

  •  
  •   Luo2mk · Nov 13, 2019 · 4351 views
    This topic created in 2551 days ago, the information mentioned may be changed or developed.
    如何让多个关键词至少匹配其中两个(不是全部匹配)
    比如
    富强,民主,文明,和谐

    只匹配富强,民主,文明,和谐任意一个不可以,必须是其中两个都出现,比如富强和民主,富强和和谐
    之前解决方案是:试着用 python 的 combinations 方法让多个关键字排列组合为两个为一组的组合,然后每一对的排列组合都用正则匹配一次(当两个关键字都出现则匹配)
    现在想想写到一句话中
    Supplement 1  ·  Nov 13, 2019

    类似于如下正则逻辑

    ((互联网.*温度)|(温度.*互联网))
    
    

    但是不一样的是,分组内的词不止是“温度”“互联网”而是由多个数量不确定的词组成

    10 replies  •  2019-11-13 21:30:39 +08:00
    ClericPy
    ClericPy
    Nov 13, 2019
    1
    finditer 来数数?
    给点例子其实比文字描述更省时间
    Luo2mk
    Luo2mk
    OP
    Nov 13, 2019
    2
    @ClericPy 一个 string 如果能匹配到某一类规则内的两个关键字以上,就把这个 string 输出为某一类,用来给 string 分类的。
    TomVista
    TomVista
    Nov 13, 2019 via Android
    3
    let arr= []
    /民主 /.test ( str ).push ( arr )
    ……
    /字符 /.test ( str ).push ( arr )

    判断 arr 里面的 true 的个数。。
    robinjin
    robinjin
    Nov 13, 2019
    4
    ((富强|民主|文明|和谐).*?){2}
    Luo2mk
    Luo2mk
    OP
    Nov 13, 2019
    5
    自己解决了:用逗号来界定分组的选取范围,然后(?!\1)来从没被分组 1 选中的范围中查找词组。如果有 别的场景就把界定范围的逗号替换掉即可
    (法律|条例).*,(?!\1)(法律|条例)
    可以匹配到的
    aaaaaaaaaa 法律啊啊啊啊啊啊啊啊啊,aaaaaa 法律 aaaaaaaa,条例,
    不能匹配到的
    aaaaaaaaaa 法律啊啊啊啊啊啊啊啊啊,aaaaaa 法律 aaaaaaaa,法律,
    Kasumi20
    Kasumi20
    Nov 13, 2019
    6
    ((富强|民主|文明|和谐).*){2}

    ```
    1 import java.lang.*
    2 import lib.logger.*
    3
    4 val log = Logger("Global")
    5
    6 fun main() {
    7 val regex = """((富强|民主|文明|和谐).*){2}""".toRegex()
    8 println("富强, 民主".matches(regex))
    9 println("自由 和谐".matches(regex))
    10 }
    ```

    true
    false
    f1ren2es
    f1ren2es
    Nov 13, 2019
    7
    最近在看敏感词过滤的东西,这个可以用 dfa 实现不过场景简单的话就算了。。。
    lihongjie0209
    lihongjie0209
    Nov 13, 2019
    8
    编译原理的词法分析和语法分析了解一下
    TimePPT
    TimePPT
    Nov 13, 2019
    9
    用 jieba 分词控制下分词颗粒度,分词结果 unique 出来和目标词列表直接比对算命中量就完了。
    TimePPT
    TimePPT
    Nov 13, 2019
    10
    李文明背了一袋富强粉。
    你正则匹配直接 GG
    当然,如果是做国内发帖闽橄瓷规避算我没说
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1690 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 05:27 · PVG 13:27 · LAX 21:27 · JFK 00:27
    ♥ Do have faith in what you're doing.