shell 正则表达式中的“:“是什么

bpsygsoo  于 2022-11-16  发布在  Shell
关注(0)|答案(2)|浏览(184)

我在sed中得到了一个正则表达式,我不确定“:“在这里代表什么。

sed 's/:[^\t]*//g'

你能给予我一些信息吗?
更新:我从一个出版物中得到了这个命令,我很困惑,因为如果:是一个普通字符,那么它后面的[^\t]意味着行的开始,这似乎实际上匹配行开始之前的:,这似乎没有任何影响?
最好的。
张主任。

kiz8lqtg

kiz8lqtg1#

我很困惑,因为如果:是一个普通字符,则它后面的[^\t]表示该行的开始,这看起来实际上与a:在排队开始之前,这似乎没有任何影响?
通常,^表示“行的开始”,没错。
然而,你在这里看到的是is a character set。在那个上下文中,^的意思是“否定的”。
所以实际上,[^\t]和“行首”一点关系都没有。它的意思是“不是制表符”。(\t的意思是“制表符”。)
总之,此正则表达式:

:[^\t]*

表示“常值:字符,后面跟着任意数目的非定位字符”。

ax6ht2ek

ax6ht2ek2#

正则表达式中的:没有什么特别之处,它只是匹配一个:字符。
所有特殊字符都在文档中列出(这是Python,因为您使用python-re标记; sed所使用的方言是不同的,但是对于:也没有特殊的含义)。

相关问题