2024年11月 第64页

基本物理量(基本物理量的单位都是基本单位吗)

[语文]七年级上册语文 字词书写 专项训练 部编版(含答案)

比那氏漱口水有那几款?比那氏漱口水款式的区别

莲藕不能和什么一起吃

金融硕士26考研择校择专业_招生专业目录_申请考研调剂

     

 

正则表达式

定义:

      正则表达式(Regular Expression)就是处理字符串的方法,它是以“行”为单位来进行字符串的处理行为,正则表达式通过一些特殊字符的辅助,可以让用户轻易达到查找、替换、删除一行或多行文字字符串。


组成:

     一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

 

元字符(Meta-Characters)是正则表达式中具有特殊意义的专用字符,用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。



应用:

正则表达式并不是一个工具程序,而是一种字符串处理的标准依据,如果你想要以正则表达式的方式处理字符串,就得要使用支持正则表达式的工具程序才行,这类的工具程序很多,如vi,grep,sed,awk等工具。

 

正则表达式与通配符区别

     通配符一般只用于文件名匹配,它是由shell解析的;正则表达式是用来匹配字符串的,般用在工具软件(grep、awk、sed等)或者支持正则的语言(javascript、perl、java、c++等)进行字符串处理时,它是有使用它的工具软件或者是语言的库模块来解释。



egrep正则表达式元字符:


个字符的元字符:    
    .: 匹配任意单个字符    
    []: 字符组,匹配单个列出的字符定义一个字符集合,匹配该集合中的一个字符    
    [^]: 排除型字符组,匹配单个未列出的字符;对字符集合求非(是对整个集合求非,而不是紧挨着^符号的字符)

             在字符集合中定义一个区间。如[A-Za-z]  
     char 转义字符 若char是元字符,或转义序列无特殊含义时,匹配char对应的普通字符

 

数量元字符:用于实现指定其前面的字符所能够出现的次数

         *: 匹配其前面的字符可以出现零次或多次    
         ?: 0次或1次,它前面的字符是可有可无的    
         {m}: m次,它前的字符要出现m次    
         {m,n}: 至少m次,至多n次    
         {m,}:至少m次    
         {0,n}: 至多n次    
         + :加号,至少需要匹配一次,至多可能任意多次

         .*:任意长度的任意字符;工作于贪婪模式:尽可能多的去匹配

 

位置锚定元字符:       ^: 行首锚定;脱字符

    $: 行尾锚定:  
    ^$: 空白行  不包含特殊字符的连续字符组成的串叫单词:

    <: 单词分界符,单词开头,等同b,出现于单词左侧

    >: 单词分界符,单词结尾,等同b  
     b:单词边界(单词的开头和结束)    

分组:    
    ( ) 分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,之后可被引用

       引用:      
         #: 引用第n个括号所匹配到的内容,而非模式本身   


或者:

      a|b: a或者b

 






shell转义符

有时候,我们想让 通配符,或者元字符 变成普通字符,不需要使用它。那么这里我们就需要用到转义符了。 shell提供转义符有三种。     


实例:


可以看到,加入了转义符 “*”已经失去了通配符意义了。


表达式全集:


grep 关键词_awk_02




shell解析脚本的过程

大家可能会想特殊字符,通配符,那么 shell在得到一条命令,到达是怎么样处理的呢?我们看下下面的图: