我想清除工作区中的所有变量,但有一些由正则表达式定义的例外。
功能clear
有一个附加选项-regexp
clear -regexp expr1 ... exprN
清除与任何一个匹配的所有变量
列出的正则表达式。该选项仅清除变量。
所以我正在寻找相反的东西。
还有
clearvars -regexp p1 p2 ...
清除所有与常规匹配的变量
表达模式 p1、p2 等等。
clearvars -except v1 v2 ...
清除除 -except 后面指定的变量之外的所有变量
旗帜。
这对于完整的变量名来说已经相当不错了,但不适用于像第一个选项那样的正则表达式。
FEX 上有解决方案,但我不想使用额外的自定义函数。
但是,由于上述略有不同的情况有如此方便的解决方案,我想知道是否还有一种简单的方法可以做到:
keep -regexp expr1 ... exprN
具有内置功能。
看一眼this https://stackoverflow.com/questions/957379/invert-match-with-regexp用于反向正则表达式匹配。在这种情况下:
clear -regexp ^((?!expr1|expr2|...).)*$
clearvars
不是内置的,而是一个 m 函数,它有其自身的缺点。通过反向正则表达式匹配,您可以执行所有操作clear
(内置)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)