我需要帮助为下面的字符串写正则表达式。我尝试了很多模式,但都失败了。 我有一个像
这样的字符串package1[module11,module12,module13],package2[module21,module22,module23,module24,module25],package3[module31]
我希望将此字符串拆分为
package1
module11,module12,module13
package2
module21,module22,module23,module24,module25
package3
module31
我知道从这里问一个正则表达式是很奇怪的但是......
答案 0 :(得分:4)
您可以使用模式进行匹配:
(\w+)\[(\w+(?:,\w+)*)\]
示例:http://www.rubular.com/r/rPUEWBoU1d
模式非常简单,真的:
(\w+)
- 捕获第一个单词(package1
)\[
(\w+(?:,\w+)*)
- 至少有一个单词(module11
)的序列,后跟逗号分隔的单词(假设它们格式正确)\]
在所有情况下,您可能希望将\w
更改为您的字母(甚至可能是[^,\[\]]
- 而不是逗号或括号。您还可能需要检查整个字符串匹配,因为上述模式可能会跳过不需要的部分(例如:a[b]$$$$c[d]
)