字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色
字颜色:30-----------39 30:黑 31:红 32:绿 33:黄 34:蓝色 35:紫色 36:深绿 37:白色
============ANSI控制码的说明 ===============
33[0m 关闭所有属性
33[1m 设置高亮度
33[4m 下划线
33[5m 闪烁
33[7m 反显
33[8m 消隐
33[30m -- 33[37m 设置前景色
33[40m -- 33[47m 设置背景色
33[nA 光标上移n行
33[nB 光标下移n行
33[nC 光标右移n行
33[nD 光标左移n行
33[yxH设置光标位置
33[2J 清屏
33[K 清除从光标到行尾的内容
33[s 保存光标位置
33[u 恢复光标位置
33[?25l 隐藏光标
33[?25h 显示光标
基本格式:
一种控制:printf("\033[xm")
多种控制:printf("\033[xyzm")等价于printf("\033[xm\033[ym\033[zm ")
方法如下: 在Vi里面如果要搜索某个关键字,只要键入/xxx就可以了,比如,要搜索一个函数,就键入/snprintf 然后回车,一个文件中,所有出现这个字样的地方都会被高亮显示。按n键,就可以自动把光标跳到下一个。 消除高亮:键入:noh就可以了。个人认为,就是完全匹配与部分匹配的差别。grep
只要字符串中有部分能够与正则匹配即可,并且会输出匹配的一整行。帮助里这样讲:
grep
searches
the
named
input
FILEs
(or
standard
input)
for
lines
containing
(注意,是containing)
a
match
to
the
given
PATTERN.
By
default,
grep
prints
the
matching
lines.
如果你在终端里正确设置了颜色显示,那么可以看到:
echo
"abcde"
|
grep
"cde"
结果输出
abcde,其中cde是高亮红色显示的(只匹配了部分)。
echo
"abcde"
|
grep
".*cde"
结果也是输出
abcde,其中abcde全是高亮红色显示的。
这表示grep是部分匹配的,只要有部分字符串匹配就OK。
expr
STRING
:
REGEXP
则是完整匹配,输出最后匹配的那个位置(anchor)。帮助里这样说的:
STRING
:
REGEXP
anchored
pattern
match
of
REGEXP
in
STRING
规定了:后面必须跟正则表达式,用于格式匹配。
.*b
是正则表达式,可用于匹配任何以b结尾的字符串。
但“cde”如果被用作完全匹配的话,就是必须匹配以c开头的字符串,显然匹配不到,因为:前的字符串以a开头。^_^
如果改为
expr
"cdeab"
:
"cde"
,这样就可以匹配成功并且返回3。
看看源码应该能更清楚内部实现方式的区别。我没看过,因此也不好多说了。以上纯属个人看法,仅供探讨。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)