在构建正则表达式字符串时,我迷失了方向。我需要一个执行以下操作的正则表达式。
我有以下字符串:
[~class:obj]
[~class|class2|more classes:obj]
[!class:obj]
[!class|class2|more classes:obj]
[?method:class]
[text]
一个字符串可以有多个上面的内容。示例字符串为“[if] [!class:obj]”
我想知道 [] 和分成匹配组之间的内容。例如,第一个匹配组将是符号(如果存在)(~|!|?)接下来是:之前的内容,因此可以是 class 或 class|class2|etc...然后是:右侧的内容和在 ] 之前停止。可能没有 : 以及它之前的内容,而只是 [] 之间的内容。
那么,我将如何编写这个正则表达式呢?是否可以给出匹配组名称以便我知道它匹配什么?
这是一个java项目。
先谢谢了。