rateltalk
V2EX  ›  问与答

问个关于匹配命名规则的正则

  •  
  •   rateltalk · Nov 2, 2020 · 1237 views
    This topic created in 2018 days ago, the information mentioned may be changed or developed.

    目标字符:10nF/50V/X7R/10%(GRM155R71H103KA01D 村田)
    我写的正则:^[a-zA-Z0-9/%].*?([^ ]+[ ]\S+)$

    经测试( https://www.phpliveregex.com/#tab-preg-match-all ),有以下问题:

    1. 删除尾部括号依然可以匹配到
    2. 尾部新增个括号也可以匹配到

    请问,如何匹配规则为:参数(型号 品牌) 这样的命名方式?只允许一对括号,参数可有可无,括号可有可无。。

    5 replies    2020-11-03 18:48:52 +08:00
    rateltalk
        1
    rateltalk  
    OP
       Nov 2, 2020
    改进了一下:^[\S]*?([^ ]+([ ]\S+)?)$
    问题依然存在
    lxilu
        2
    lxilu  
       Nov 2, 2020 via iPhone
    括号要转义,括号内容要懒
    rateltalk
        3
    rateltalk  
    OP
       Nov 3, 2020
    @lxilu
    改进版:^([^ ()]+)(\(.*?\))$
    有个问题是多个括号也能匹配到,,,只想匹配一个括号
    lxilu
        4
    lxilu  
       Nov 3, 2020
    去掉$
    shequ2046
        5
    shequ2046  
       Nov 3, 2020
    哈哈,好奇大部分人是因为太菜所以没办法帮你,还是因为看出来你太菜而不愿帮你,还是说全部都是爬虫呢。。。
    给你个建议,regex 的基础中的基础的基础其实是找出规律(pattern),
    找不出规律的话一切都是徒劳。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5752 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 03:38 · PVG 11:38 · LAX 20:38 · JFK 23:38
    ♥ Do have faith in what you're doing.