正则表达式-定位符

1. ^ 

    匹配以^后面的字符开始的字符串。

    当^后见直接跟字符串时,表示以后面的整个字符串开始,当后面是一个表达式时,表示匹配以该表达式开始的字符串,详见下例:

    grep -E '^123[0-9]*[3]' data.txt      // 查找以【123 + 任意多的0-9之间的字符 + 3】 开始的字符串

    grep -E '^[123][0-9]*[3]' data.txt    // 查找以【1或2或3】开始 + 0-9之间的数字任意多个数字 + 3 的字符串

    grep -E '^(123).*[3]' data.txt          // 查找以【123】开始 + 任意多个任意字符 + 3 的字符串

2. $

    匹配以$前面的字符结束的字符串。

    当$前面直接跟字符时,表示匹配以前面整个字符串结束的, 当前面是一个表达式时,表示匹配以该表达式结束的字符串,详见下例:

    grep -E '123$' data.txt                   // 查找以【123】结束的字符串

    grep -E '^[456][123]$' data.txt                 // 查找以【4或5或6】开始,以【1或2或3】结束的字符串

3. \b

    匹配单词边界(即从单词靠近空格的地方开始查找),查找匹配\b后或者前面字符的单词。

    grep -E '\bfine' data.txt    // 查找单词fine 或者查找以fine开始的单词

    grep -o -E '\bfi' data.txt   // 查找单词fi 或者查找以fi开始单词

4. \B

    匹配非单词边界(即从单词中查找),查找匹配含有某个字符的单词,该字符不在开始也不在结束。

    grep -o -E '\Bfi' data.txt   // 查找包含字符fi的单词

你可能感兴趣的:(正则表达式-定位符)