想请教一个正则相关问题

2021-07-19 14:29:38 +08:00
 xuqiccr
字符串"水果,蔬菜,肉类,水产(大闸蟹,小龙虾),鲜花", 怎么用正则匹配出["水果", "蔬菜", "肉类", "水产(大闸蟹,小龙虾)", "鲜花"]的结果呢?谢谢大佬们。
611 次点击
所在节点    正则表达式
3 条回复
netwjx
2021-07-19 14:49:32 +08:00
低配版: (?:^|,)([^,]+)
后续自行 filter 一次 "(大闸蟹,小龙虾)" 的匹配

高配版: 需要你的正则库支持平衡组
https://blog.csdn.net/zm2714/article/details/7946437
gstqc
2021-07-19 16:19:45 +08:00
这个不应该用正则来做
写个函数,设置一个空数组,一个索引初始值=0,一个 int=0
遍历字符串
遇到'(',int += 1,遇到')',int -= 1
遇到','并且 int == 0 把 str[索引:当前位置] append 到数组,更新索引

这个远比正则的可维护性高得多
可能,你下次还会有更多正则问题
netwjx
2021-07-20 16:00:43 +08:00
@gstqc 状态机 ^_^

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

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

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

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

© 2021 V2EX