我有带有占位符的字符串,例如 "
{variant 1|variant 2}
",其中"|
"表示"或"; 我想获得所有没有占位符的字符串变体。例如,如果我使用字符串"{a|b{c|d}}
",则会获得字符串 "a
"、"bc
" 和 "bd
"。
我尝试使用正则表达式\{([^{}])\}
(它获取最后一层,在我的情况下是{c|d}
)进行递归来获取它,但是在下一步中我有两个字符串:{a|bc}
和{a|bd}
,这将产生 "a
", "bc
", "a
", "bd
"。也许我需要创建一些图形或树结构?
我还想问一下(?[^{}|$]*),为什么要有"$"? 我删除了它,但没有效果。
"{a|b{c|d}"
应该是"{a|b{c|d}}"
吧? - dfsq/bin/bash -c 'echo $string'
); :-D - cmbuckley