作者art1 (人,原来不是人)
看板RegExp
标题[问题] 只撷取括号内的资料并且编成同一组
时间Sat Dec 15 00:43:16 2018
语言是 javascript
假设资料如下
(a)
(b)(c)
(d)(e)(f)
括号内的都是想撷取的资料
但分成三笔来撷取
第一笔的 a 会放在 group 1
第二笔的 b c 会分别放在 group 1 跟 group 2
第三笔的 d e f 会分别放在 group 1 跟 group 2 跟 group 3
目前的解法很丑,就是同个规则不断重复加上去,直到重复次数可以满足需求为止
\((\w)\)(?:\((\w)\))?(?:\((\w)\))?
想请问是否有除此之外更好的方法?
试过 \((\w)\)(?:\((\w)\)){0,3},在 d e f 的情况下不合要求
--
「看在上帝的份上,我们不能当着孩子的面枪杀他的父亲!」
「那我们就连孩子一起干掉!」
「第一枪打中的是那个天真的孩子,第二枪是抱着孩子的母亲。第三枪
停顿了三秒,当难以致信的父亲擦拭着脸上爱子的脑浆从震惊中醒转
过来,慢慢的转头看向停车的地方,分辨出是谁在攻击他後,第三颗
子弹才将他的脑壳打飞。」 ─摘自〈狼群〉
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.121.187.47
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/RegExp/M.1544805801.A.F82.html
※ 编辑: art1 (122.121.187.47), 12/15/2018 00:43:30
1F:推 x246libra: 可以给一些测试例子吗? 看不太懂你想抓什麽类型的资料 12/16 10:05
2F:→ x246libra: 没事 我看懂了 思考中 12/16 10:08
3F:推 x246libra: 恩 我想不到xd 12/16 10:50
5F:→ art1: 要另外写程式码处理更麻烦了,这样的话宁愿丑一点 12/17 00:29
6F:推 asglay: 直接使用\w, 然後抓每次match而不是每个group 01/30 12:26
7F:推 Gold740716: 你可以用 g flag 06/26 23:47
8F:→ Gold740716: /\((\w)\)/g 06/26 23:49