Следующее regex будет делать то, что вы хотите (до тех пор, пока поддерживаются отрицательные lookbehinds и lookaheads), правильное соответствие вещей; единственная проблема заключается в том, что она соответствует отдельным символам (т. е. каждое совпадение - это один символ, а не все символы между двумя последовательными «барами»), что может привести к высоким накладным расходам, если вы работаете с очень длинными строками.
b(?!ar)|(?<!b)a|a(?!r)|(?<!ba)r|[^bar]
Я не уверен, что понимаю, почему вы хотите условное выражение, поскольку ваши then
и else
совпадают.
В любом случае, я думаю, что вы ищете что-то вроде этого:
Percentage =
DIVIDE (
COUNT ( Foods[Fruit] ),
CALCULATE ( COUNT ( Foods[Fruit] ), ALLEXCEPT ( Foods, Foods[Group] ) )
)
Функция ALLEXCEPT
удаляет весь контекст фильтра, кроме столбца Group
, так что вы получаете все [115 ] в этом Group
.