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

2020-11-02 16:42:09 +08:00
 s609926202

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

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

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

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

752 次点击
所在节点    问与答
5 条回复
s609926202
2020-11-02 16:58:28 +08:00
改进了一下:^[\S]*?([^ ]+([ ]\S+)?)$
问题依然存在
lxilu
2020-11-02 23:53:29 +08:00
括号要转义,括号内容要懒
s609926202
2020-11-03 09:16:18 +08:00
@lxilu
改进版:^([^ ()]+)(\(.*?\))$
有个问题是多个括号也能匹配到,,,只想匹配一个括号
lxilu
2020-11-03 14:57:11 +08:00
去掉$
shequ2046
2020-11-03 18:48:52 +08:00
哈哈,好奇大部分人是因为太菜所以没办法帮你,还是因为看出来你太菜而不愿帮你,还是说全部都是爬虫呢。。。
给你个建议,regex 的基础中的基础的基础其实是找出规律(pattern),
找不出规律的话一切都是徒劳。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/721060

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX