作者art1 (人,原来不是人)
看板RegExp
标题[问题] 如何确保括号成对出现?
时间Sun Mar 25 17:45:56 2018
括号有可能不出现,有可能出现,但括号内的东西一定要出现
虽然可以在左括号加个量词?,右括号加个量词?,但这样无法确保括号是同时出现
或同时不出现
若是把左括号与右括号用()包起来後再加个量词?,就会导致括号内的东西无法一定出现
想请教像这种不相连的元素但却有「同时出现,或同时不出现」的性质该如何
撰写正规表示法满足?
--
「看在上帝的份上,我们不能当着孩子的面枪杀他的父亲!」
「那我们就连孩子一起干掉!」
「第一枪打中的是那个天真的孩子,第二枪是抱着孩子的母亲。第三枪
停顿了三秒,当难以致信的父亲擦拭着脸上爱子的脑浆从震惊中醒转
过来,慢慢的转头看向停车的地方,分辨出是谁在攻击他後,第三颗
子弹才将他的脑壳打飞。」 ─摘自〈狼群〉
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.47.170.217
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/RegExp/M.1521971166.A.446.html
1F:推 cutekid: 能举个例吗 03/26 00:54
2F:→ vince2018: /\(([^\)]+)\)/ 03/29 10:59
3F:推 mars90226: 感觉只能用 | 去分有出现跟没出现的状况 03/30 13:23
4F:推 asglay: Google balancing group 03/30 20:54
5F:→ art1: 感谢楼上的关键字 03/30 22:51
6F:→ art1: 虽然是语言限定,不过这麽复杂的功能有这种情况很正常 03/30 22:52
7F:→ art1: 连书上都没提到这个功能,本以为那作者已经钻研的很深了 03/30 22:55
8F:推 cutekid: 推 asglay 大大唷,原来还有 balancing group 这种东西! 03/31 13:24
9F:→ asglay: 如果是PCRE可以用(?R) 04/09 01:19
11F:推 cutekid: 即使用了(?R),好像会 match 到 unbalance brackets 04/09 14:10
13F:推 LPH66: 事实上形式语言理论里的正规表示式是不能表示平衡括号的 04/13 06:29
14F:→ LPH66: 因此一般都需要靠各自程式语言版本里的扩充 04/13 06:29
15F:→ LPH66: 啊, 应该要微修正上上楼: 不能表示任意多个平衡括号 04/13 07:18
16F:→ LPH66: 如果是固定数量的话那就写死就好了 04/13 07:18
17F:推 shadowjohn: 大学时程式设计曾出过的考题~ 04/18 15:25
18F:→ shadowjohn: 读出磁片里五个测试txt档,符合成对内容 T,反之F 04/18 15:27
19F:推 no1kk: 记得这是学array push/pop 的范例,string由左开始,遇到左 06/13 15:03
20F:→ no1kk: 括号就push进去array,遇到右括号就pop出来比对。只要中途 06/13 15:03
21F:→ no1kk: 右括号有比对错误或是string结束array却还有元素就是没平衡 06/13 15:04