V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xuanwu
V2EX  ›  分享创造

中文 API 表达正则

  •  
  •   xuanwu · 3 天前 · 841 次点击

    初版草稿,欢迎意见建议 pip install chinese-regular-expression。详请见文档和测试用例。

    任一("From", "Subject").表达()
    =>
    r"From|Subject"
    
    
    序列("$").可无().某字("_", 大小写英文, 中文).某字("_", 大小写英文, 数字, 中文).若干().表达()
    =>
    r'\$?[_a-zA-Z\u4e00-\u9fa5][_a-zA-Z0-9\u4e00-\u9fa5]*'
    
    
    序列("<emphasis>", 分段(序列(多个数字, 分段(序列(点号, 多个数字)).若干(3))), "</emphasis>").表达()
    =>
    r"<emphasis>([0-9]+(\.[0-9]+){3})</emphasis>"
    
    9 条回复    2024-12-19 21:47:29 +08:00
    oneisall8955
        1
    oneisall8955  
       3 天前
    想起文言文编程语言😂
    w568w
        2
    w568w  
       3 天前   ❤️ 1
    恭喜你重新发明了 Parser combinator: https://en.wikipedia.org/wiki/Parser_combinator
    forty
        3
    forty  
       3 天前
    你这中英混杂的看着真难受,就像讲话的中英夹杂过多也听了难受一样。
    比文言文编程差远了。
    文言文写的是: [正则之 From 或 Subject] 不比 [任一("From", "Subject").表达()] 舒服吗?
    xuanwu
        4
    xuanwu  
    OP
       2 天前
    @w568w 创作动机请见: https://zhuanlan.zhihu.com/p/323940002 欢迎分享类似实现。
    xuanwu
        5
    xuanwu  
    OP
       2 天前
    @forty 略复杂的比如另两个写出来不知如何?
    个人暂时用 py 比较多,于是先做 py 的库。
    forty
        6
    forty  
       1 天前
    @xuanwu
    '\$?[_a-zA-Z\u4e00-\u9fa5][_a-zA-Z0-9\u4e00-\u9fa5]*'
    或有$,及_、大小写英文、汉字之一,及_、大小写英文、数字、汉字若干
    xuanwu
        7
    xuanwu  
    OP
       17 小时 40 分钟前
    @forty 感觉不错。不过 wenyan 项目里 `或有、及、若干` 尚未实现吧?
    sead
        8
    sead  
       11 小时 35 分钟前
    这个除了好玩之外,用起来不别扭吗?
    forty
        9
    forty  
       1 小时 1 分钟前
    @xuanwu 有提案,未实现。

    @sead 这个东西的价值,其实不在代码层面,我觉得应该是可以和图形化结合起来,从图形(铁道图)来构建正则。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2833 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:49 · PVG 22:49 · LAX 06:49 · JFK 09:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.