也就是说,给定一个 POSIX 正则表达式 X,哪个 POSIX 正则表达式是 X 的补集? (更详细的方式:如何获取正则表达式 X' 匹配所有不与 X 匹配的字符串,但不匹配任何与 X 匹配的字符串)
如果这在 POSIX 中不可用,是否有一个通用扩展具有它?
答案1
我相信你可以尝试(?:(?!X).)
使用 PCRE,当 是字符串时它肯定有效,但我不能 100% 确定它在是正则表达式X
时始终有效。X
echo "dust mite" | grep -P '^(?:(?!abc).)*$'
dust mite
echo "dust abc mite" | grep -P '^(?:(?!abc).)*$'
echo "dust mite" | grep -P '^(?:(?!abc(x+y)).)*$'
dust mite
echo "dust abcxxxxy mite" | grep -P '^(?:(?!abc(x+y)).)*$'