I'm not sure I understand, but given --
(defun distanceof ( x / result )
(vl-catch-all-apply
'(lambda ()
(vl-some
'(lambda (units) (setq result (distof x units)))
(list (getvar "lunits") 4 5 2 1)
)
)
)
result
)
Perhaps --
(rtos (distanceof "18'2\"") 4 2)
=> "18'-2\""