But I believe this can be a path to reach what you want.
In this impoverished version of RouterOS's grep there is no "-v" or "--invert-match".
Maybe if you put your efforts into getting ":grep" inside RouterOS to have the argument
invert-match (yes | no; Default: no)
it will be easier to achieve what you want, and most likely this will work in many other scenarios.
I agree, and :grep should be extended with invert-match too as @fischerdouglas wrote above.
Besides, my Regex missed the cases where the line contains just the string ; or ;; and nothing else. That shows how trying to manually invert Regex patterns is very error prone . A more correct pattern is:
You can use :serialize to=dsv options=dsv.remap [/interface/print detail stats proplist=rx-drop,tx-drop,type,default-name] if goal is to for output to something other than terminal.
Also, you just use a simple script to store the results of /interface/print detail stats as-value and then use a :foreach loop to output to screen as va however you want.
Otherwise, you run into the limited support for string parsing in RouterOS scripting. But you can always get an array from print ... as-value then access whatever variables you want.