-sublime是文本编辑器,所以冒号
不会当成是字符串的开始,他已经成为了文本字符。
- 冒号不用转义,等号也不用转义
- abc$匹配的是以abc结尾的abc,而不是含有abc结尾的整个字符串,是子串。如果要匹配带什么的,请把之前的任意说出来。
同样的到底,^abc匹配的是以abc开头的abc,不是abc开头的整个字符串。
字符串的结束是以space或者\n来标志。正则匹配会遍历每个字符串,去全部匹配。 但是,当正则中含有space,那么两个字符串就会变成一个字符串。
比如说:
abc abcd .regex1: abc .regex2:abc a
未加说明的是字符串只会找到符合条件的子串,不会联想到整个字符串。
所以,就有这样的例子:
a开头,b结尾的字符串,说这句话的时候其实已经默认我要找的是整个字符串,而不是子串。
应该描述成a开头,中间任意长度任意字符,b结尾的字符串。
123456789,找567,不能用^567$来描述。因为^和$一起用的意思表示的是我要搜寻这样的整个字符串,是整个,不是子串。当然^123就可以找到123,和我上面说的不矛盾
所以,慎用^和$,这玩意不好整。
其实,每次出现这样的问题,我们可以回归到最初的起点去思考: 正则表达式最初的目的还是进行查找,不过更加个性化了。所以,有时候拿着ctrl+F去思考和比对一下,就明白了很多。
原文链接:https://www.f2er.com/regex/361184.html