[问题] 如何确保括号成对出现?

楼主: art1 (人,原来不是人)   2018-03-25 17:45:56
括号有可能不出现,有可能出现,但括号内的东西一定要出现
虽然可以在左括号加个量词?,右括号加个量词?,但这样无法确保括号是同时出现
或同时不出现
若是把左括号与右括号用()包起来后再加个量词?,就会导致括号内的东西无法一定出现
想请教像这种不相连的元素但却有“同时出现,或同时不出现”的性质该如何
撰写正规表示法满足?
作者: cutekid (可爱小孩子)   2018-03-26 00:54:00
能举个例吗
作者: vince2018   2018-03-29 10:59:00
/\(([^\)]+)\)/
作者: mars90226 (火星人)   2018-03-30 13:23:00
感觉只能用 | 去分有出现跟没出现的状况
作者: asglay (收收收尾)   2018-03-30 20:54:00
Google balancing group
楼主: art1 (人,原来不是人)   2018-03-30 22:51:00
感谢楼上的关键字虽然是语言限定,不过这么复杂的功能有这种情况很正常连书上都没提到这个功能,本以为那作者已经钻研的很深了
作者: cutekid (可爱小孩子)   2018-03-31 13:24:00
推 asglay 大大唷,原来还有 balancing group 这种东西!
作者: asglay (收收收尾)   2018-04-09 01:19:00
作者: cutekid (可爱小孩子)   2018-04-09 14:10:00
即使用了(?R),好像会 match 到 unbalance brackets
作者: asglay (收收收尾)   2018-04-12 22:55:00
作者: LPH66 (-6.2598534e+18f)   2018-04-13 06:29:00
事实上形式语言理论里的正规表示式是不能表示平衡括号的因此一般都需要靠各自程式语言版本里的扩充啊, 应该要微修正上上楼: 不能表示任意多个平衡括号如果是固定数量的话那就写死就好了
作者: shadowjohn (转角遇到爱)   2018-04-18 15:25:00
大学时程式设计曾出过的考题~读出磁片里五个测试txt档,符合成对内容 T,反之F
作者: no1kk (心中在下雨)   2018-06-13 15:03:00
记得这是学array push/pop 的范例,string由左开始,遇到左括号就push进去array,遇到右括号就pop出来比对。只要中途右括号有比对错误或是string结束array却还有元素就是没平衡

Links booklink

Contact Us: admin [ a t ] ucptt.com