在 bash 中,我试图匹配数组中存在的有效属性。属性可以通过在它们前面加上一个 bang(感叹号,!)来“禁用”,在这种情况下它们不能匹配。我有这个:
[[ ${TESTS[@]} =~ [^\!]match ]]
如果单词 'match' 在 TESTS 中并且前面没有!,它将返回 true。
它可以工作,除非单词匹配位于数组中的第一个位置。问题是正则表达式在说“匹配之前不是一个!” . 当它是第一项时,它前面没有任何内容,因此不匹配。
我如何修改上面的内容以说“匹配前面没有!” ?
从阅读我尝试过的其他问题的答案(?<!!)match但这不起作用。