创建一个可以找到文章中所有括号是否匹配的算法，并输出true或false。


(5 + 3) * {[(2 + 1) + 3] - 4} / (3 - 1)
可以使用栈来处理这个问题。遍历字符串，如果遇到左括号，则将其推入栈中，如果遇到右括号，就检查栈顶是否是相应的左括号。

如果是相应的左括号，则将其从栈中弹出，继续遍历字符串。如果在任何时候栈为空或者无法匹配，则括号不匹配，返回false。 如果遍历完字符串后栈为空，则所有括号都匹配，返回true。

下面是具体的实现示例（使用Python语言）：

```
def matching_parenthesis(str):
    stack = []
    for char in str:
        if char in ["(", "[", "{"]:
            stack.append(char)
        elif char in [")", "]", "}"]:
            if not stack:
                return False
            current_char = stack.pop()
            if current_char == "(":
                if char != ")":
                    return False
            if current_char == "[":
                if char != "]":
                    return False
            if current_char == "{":
                if char != "}":
                    return False
    if stack:
        return False
    return True

# Test
str = "(5 + 3) * {[(2 + 1) + 3] - 4} / (3 - 1)"
print(matching_parenthesis(str)) # Output: True
```