好的,使用bash终端或在sublime中使用find/replace,我想找到:
BLK=$'\e[0;30m'
RED=$'\e[0;31m'
GRN=$'\e[0;32m'
YEL=$'\e[0;33m'
BLU=$'\e[0;34m'
MAG=$'\e[0;35m'
CYN=$'\e[0;36m'
WHT=$'\e[0;37m'
字符串
前3个字母,和=$,并replqace它与前3别名那些前3个字母=“echo -e(一切之后的报价和之前的最后一个报价).到目前为止,甚至没有这个:
这就是我卡住的地方:
我可以找到/替换别名(前3个字母),但不能完成其余部分。该正则表达式如下所示:
Find: ([A-Z]{3,5})(\=\$)(?:\')(\\e\[\d\;?\d{1,3}m)(?:\')
Replace: alias \1
型
但似乎不能完成整个事情。使用崇高的文本编辑器。
3条答案
按热度按时间nvbavucw1#
使用Sublime,您可以使用2个捕获组,而不是将
=
添加到第一个捕获组,并将关闭的'
添加到第二个捕获组。您可以找到:
字符串
并替换为:
型
参见regex demo
请注意,您不必对引号进行转义,也可以省略非捕获组,因此
(?:\')
将仅为'
nbewdwxp2#
它可能是替换字符串;模式是正确的。(我只熟悉Java,并在这里发布了一个工作解决方案。请查看它是否有助于您创建等效的Sublime替换。)
字符串
如果你不熟悉Java:
\
的转义字符太多,这个模式看起来有点混乱。但是我使用了和你发布的完全一样的模式,也就是([A-Z]{3,5})(\=\$)(?:\')(\\e\[\d\;?\d{1,3}m)(?:\')
。$1
,$2
等,而不是\1
,\2
等。结果
对于代码中的
input
值,我从您的问题中获取,以下是输出:型
h9a6wy2h3#
尝试以下 * 捕获模式 *。
字符串
以及以下替换文本。
型
输出
型