正则符号

Posted lbzyyy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则符号相关的知识,希望对你有一定的参考价值。

 目录

1.系统特殊符号

2.系统通配符号

3.正则符号

1.系统特殊符号

//系统特殊符号
1.管道符号|
2.引号符号""  ‘‘
1)""
2)‘‘
3.重定向符号>/1>    2>  >>/1>>  2>>
4.路径信息符号 $OLDPWD
5.逻辑符号&&    ||
1)&&
2)||
1.管道符号(前一个命令执行结果交给后面命令处理)
[root@lbz01 lsn]# find /lbz -type f -name "*.txt" |xargs -i cp {} /lsn        //将找到的信息放到cp 和 最终目录中间
#xargs: 将信息进行分组显示
[root@lbz01 lsn]# find /lbz -type f -name "*.txt" |xargs cp -t /lsn           //利用cp指明谁是数据最终保存的目录信息
2.引号符号
[root@lbz01 lbz]# echo "lbz $LANG $lsn"                                       1)""
#"" 和单引号功能类似 但对特殊信息会做解析
lbz en_US.UTF-8 123
[root@lbz01 lbz]# echo lbz $LANG $lsn                                       2)‘‘
lbz $LANG $lsn
补充:
   ``($()) 将引号中的命令先执行,将执行结果交给引号外面的命令进行处理
   没有引号 和双引号功能类似 但是可以直接识别通配符信息
3.重定向符号 
#>/1> 标准输出重定向符号
 2> 错误输出重定向符号
 >>/1>> 标准输出追加重定向符号
 2>> 错误输出追加重定向符号  
方法一: 将正确和错误信息同时保留到一个文件
[root@lbz lbz]# echo lbz >>/lbz/info.log 2>>/lbz/info.log 
[root@lbz lbz]# cho lbz >>/lbz/info.log 2>>/lbz/info.log 
[root@lbz lbz]# cat /lbz/info.log
lbz
-bash: cho: command not found

方法二: 将正确和错误信息同时保留到一个文件
[root@lbz lbz]# echo lbz &>/lbz/info.log 
[root@lbz lbz]# cat /lbz/info.log
lbz
[root@lbz lbz]# cho lbz &>/lbz/info.log 
[root@lbz lbz]# cat /lbz/info.log
-bash: cho: command not found

方法三: 将正确和错误信息同时保留到一个文件
[root@lbz lbz]# echo lbz >/lbz/info.log 2>&1 
[root@lbz lbz]# cat /lbz/info.log
lbz
[root@lbz lbz]# cho lbz >/lbz/info.log 2>&1 
[root@lbz lbz]# cat /lbz/info.log
-bash: cho: command not found
4.路径信息符号
#../ 上一级目录
 ./ 当前路径
 ~ 返回到家目录
 - 两个目录之间进行快速切换
[root@lbz01 lbz]# cd /tmp
[root@lbz01 tmp]# cd $OLDPWD
[root@lbz01 lbz]# cd $OLDPWD
[root@lbz01 tmp]# echo $OLDPWD
/lbz
[root@lbz01 tmp]# cd /lbz
[root@lbz01 lbz]# echo $OLDPWD
/tmp
5.逻辑符号
[root@lbz01 lbz]# mkdi /lbz;touch /lbzz/lsny.txt
-bash: mkdi: command not found
touch: cannot touch ‘/lbzz/lsny.txt’: No such file or directory
[root@lbz01 lbz]# mkdi /lbz && touch /lbz/lsny.txt                           1)&&
#与逻辑符号 前一个命令执行成功, 再执行后面的命令
-bash: mkdi: command not found
[root@lbz01 lbz]# mkdir /alex && touch /alex/lbz.txt
[root@lbz01 lbz]# ll /alex/lbz.txt
-rw-r--r--. 1 root root 0 Jan 18 20:07 /alex/lbz.txt
[root@lbz01 lbz]# rmx /lsn/lbz.txt || echo "failed" >>/lsn/error.txt         2)||
#或逻辑符号 前一个命令执行失败, 再执行后面的命令
-bash: rmx: command not found
[root@lbz01 lbz]# cat /lsn/error.txt
failed
[root@lbz01 lbz]# rm /lsn/lbz.txt || echo "failed" >>/lsn/error.txt
[root@lbz01 lbz]# cat /lsn/error.txt
failed

2.系统通配符号

//系统通配符号(利用通配符号匹配文件名称信息)
1. * 模糊匹配所有内容
2. {} 生成序列信息 (生成一行序列)
1) 生成连续序列
2) 生成不连续序列
3) 生成组合序列
4) 快速备份文件数据方法
1. * 模糊匹配所有内容
[root@lbz01 ~]# find /lbz -type f -name "*.txt"                              1. * 模糊匹配所有内容
/lbz/ok.txt
/lbz/error.txt
/lbz/lbz.txt
/lbz/alex.txt
/lbz/lsn.txt
/lbz/lsny.txt
[root@lbz01 ~]# ll /lbz/*.txt
-rw-r--r--. 1 root root  0 Jan 18 20:28 /lbz/alex.txt
-rw-r--r--. 1 root root  0 Jan 18 20:00 /lbz/error.txt
lrwxrwxrwx. 1 root root 12 Jan 18 09:42 /lbz/lbz_soft_link.txt -> /lbz/lbz.txt
-rw-r--r--. 1 root root  0 Jan 18 20:27 /lbz/lbz.txt
-rw-r--r--. 1 root root  0 Jan 18 23:38 /lbz/lsn.txt
-rw-r--r--. 1 root root  0 Jan 18 23:38 /lbz/lsny.txt
-rw-r--r--. 1 root root  4 Jan 18 20:00 /lbz/ok.txt
2. {} 生成序列信息 (生成一行序列)
[root@lbz01 ~]# echo {1..10}                                                  1) 生成连续序列         
1 2 3 4 5 6 7 8 9 10
[root@lbz01 ~]# echo {1..10..2}                                               2) 生成不连续序列
1 3 5 7 9
[root@lbz01 ~]# echo {A,B}{01,02}                                             3) 生成组合序列
A01 A02 B01 B02
[root@lbz01 lbz]# echo /lbz/lbz.txt{,.bak}                                    4) 快速备份文件数据方法
/lbz/lbz.txt /lbz/lbz.txt.bak
[root@lbz01 lbz]# cp /lbz/lbz.txt{,.bak}

3.正则符号
1. 利用正则符号匹配文件内容信息
2. 正则符号经常出现在各种开发语言中, python java php
3. 正则符号经常被三剑客命令使用
1.基础正则符号: basic regular expression BRE

//基础正则符号
1.^以什么开头的信息
2.$以什么结尾的信息
[root@lbz01 ~]# cat >>/lbz/lbz.txt<<EOF                  //创建测试环境
> # lbz-sz-01
> lbz-linux
> lbz-python-linux
>
> # lbz-sh
> lbz-linux
> lbz-python-linux
>
> # lbz-bj
> lbz-linux
> java
> mysql
> go
> python
> EOF
[root@lbz01 ~]# grep "^lbz" /lbz/lbz.txt                 1.将以lbz开头的行找出来
lbz-linux
lbz-python-linux
lbz-linux
lbz-python-linux
lbz-linux
[root@lbz01 ~]# grep "linux$" /lbz/lbz.txt               2.将以lbz结尾的行找出来
lbz-linux
lbz-python-linux
lbz-linux
lbz-python-linux
lbz-linux
[root@lbz01 ~]# grep -v "^$" /lbz/lbz.txt                // 将全部内容显示,但不要显示空行
# lbz-sz-01
lbz-linux
lbz-python-linux
# lbz-sh
lbz-linux
lbz-python-linux
# lbz-bj
lbz-linux
java
mysql
go
python
//基础正则符号
1. .符号
2. *星符号
3. .*点星结合
4. 转义符号
5. []括号符号
6. [^]括号和尖号组合
[root@lbz01 ~]# cat >>~/lbz_test.txt<<EOF                        //创建实验环境
> I am lbz teacher!
> I teach linux.
>
> I like badminton ball ,billiard ball and chinese chess!
> my blog is http://lbz.blog.51cto.com
> our site is http://www.etiantian.org
> my qq num is 49000448.
>
> not 4900000448.
> my god ,i am not lez,but LBZ!
> EOF

[root@lbz01 ~]# grep "." ~/lbz_test.txt (-o)                      1. .符号
#. 匹配任意一个字符,且只有一个字符(-o显示匹配过程)
I am lbz teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not lez,but LBZ!
[root@lbz01 ~]# grep "0*" ~/lbz_test.txt                          2. *符号
#匹配前一个字符连续出现了0次或者多次
I am lbz teacher!
I teach linux.

I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.

not 4900000448.
my god ,i am not lez,but LBZ!
[root@lbz01 ~]# grep "^m.*m$" ~/lbz_test.txt                      3. .*点星结合
# .* 匹配任意所有信息
my blog is http://lbz.blog.51cto.com
[root@lbz01 ~]# grep "^m.*o" ~/lbz_test.txt                       //贪婪匹配
my blog is http://lbz.blog.51cto.com
my god ,i am not lez,but LBZ!
[root@lbz01 ~]# grep "^m.*to" ~/lbz_test.txt                      //指定具体信息阻止贪婪匹配
my blog is http://lbz.blog.51cto.com
[root@lbz01 ~]# echo -e "lbz01
lbz02
lbz03"                     4. 转义符号
作用:
01. 将有特殊意义符号,转义成普通信息进行识别
02. 将没有意义的信息转义为有特殊意义的信息

 换行符号
	 制表符号
lbz01
lbz02
lbz03
[root@lbz01 ~]# grep ".$" lbz_test.txt                            //使用转义符号前
I am lbz teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not lez,but LBZ!
[root@lbz01 ~]# grep ".$" lbz_test.txt                           //使用转义符号后
I teach linux.
my qq num is 49000448.
not 4900000448.
[root@lbz01 ~]# grep "l[be]z" lbz_test.txt                        5. []括号符号
#[] 匹配多个字符信息
I am lbz teacher!
my blog is http://lbz.blog.51cto.com
my god ,i am not lez,but LBZ!
[root@lbz01 ~]# grep "^[Im]" lbz_test.txt
I am lbz teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
my qq num is 49000448.
my god ,i am not lez,but LBZ!
[root@lbz01 ~]# grep "[abc]" lbz_test.txt                          6. [^]括号和尖号组合
#[^] 排除符号
I am lbz teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
our site is http://www.etiantian.org
my god ,i am not lez,but LBZ!
[root@lbz01 ~]# grep "[^abc]" lbz_test.txt
I am lbz teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.
not 4900000448.
my god ,i am not lez,but LBZ!

2.扩展正则符号: extended regular expression ERE

//扩展正则符号
默认 grep sed不能直接识别
grep 提升自己 -- egrep/grep -E 
sed 提升自己 -- sed -r 
1. +号符号:+
2. 竖线符号:|
3. 括号符号:()
4. 括号符号:{}
5. 问号符号:?
1. +号符号:+
[root@lbz01 ~]# cat lbz_test.txt                                         //实验环境
I am lbz teacher!
I teach linux.

I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.

not 4900000448.
my god ,i am not lez,but LBZ!

[root@lbz01 ~]# egrep "0+" lbz_test.txt                                  1.+号符号
#+:匹配前一个字符连续出现了1次或者多次 
my qq num is 49000448.
not 4900000448.
[root@lbz01 ~]# egrep "0+" lbz_test.txt -o
000
00[root@lbz01 ~]# grep -Ev "0+" lbz_test.txt                            //排除内容
I am lbz teacher!
I teach linux.

I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
our site is http://www.etiantian.org

my god ,i am not lez,but LBZ!
000
2. 竖线符号:|
[root@lbz01 ~]# grep -E "lbz|lez" lbz_test.txt                          2. 竖线符号:|
#|:并且符号,用于匹配多个信息
I am lbz teacher!
my blog is http://lbz.blog.51cto.com
my god ,i am not lez,but LBZ!
3. 括号符号:()
[root@lbz01 ~]# grep -E "l(be)z" lbz_test.txt                           3. 括号符号:()
#():指定信息进行整体匹配
[root@lbz01 ~]# grep -E "l(b|e)z" lbz_test.txt
I am lbz teacher!
my blog is http://lbz.blog.51cto.com
my god ,i am not lez,but LBZ!
#():进行后项引用前项使用: sed命令替换功能
[root@lbz01 ~]# echo lbz{01..10}|xargs -n 1|sed -r s#(.*)#useradd1#g
useraddlbz01
useraddlbz02
useraddlbz03
useraddlbz04
useraddlbz05
useraddlbz06
useraddlbz07
useraddlbz08
useraddlbz09
useraddlbz10
[root@lbz01 ~]# seq -w 10|sed -r s#(.*)#useradd lbz1;echo 123456|passwd --stdin lbz1#g
//批量创建用户 lbz01..lbz10,并给每个用户设置密码信息,默认初始化密码(123456)
useradd lbz01;echo 123456|passwd --stdin lbz01
useradd lbz02;echo 123456|passwd --stdin lbz02
useradd lbz03;echo 123456|passwd --stdin lbz03
useradd lbz04;echo 123456|passwd --stdin lbz04
useradd lbz05;echo 123456|passwd --stdin lbz05
useradd lbz06;echo 123456|passwd --stdin lbz06
useradd lbz07;echo 123456|passwd --stdin lbz07
useradd lbz08;echo 123456|passwd --stdin lbz08
useradd lbz09;echo 123456|passwd --stdin lbz09
useradd lbz10;echo 123456|passwd --stdin lbz10
[root@lbz01 ~]# echo 123456|sed -r s#([1-6]+)#<1>#g 
//将输出的信息echo 123456 ==> 转换为 <123456>进行显示            
<123456>
[root@lbz01 ~]# echo 123456|sed -r s#(12)(34)(56)#<1><2><3>#g
#echo 123456 ==> 转换为 <12><34><56>进行显示
<12><34><56>
[root@lbz01 ~]# echo 123456|sed -r s#(12)(34)(56)#<1><><3>#g
<12><><56>
[root@lbz01 ~]# echo 123456|sed -r s#(12)(34)(56)#<1><3><3>#g
<12><56><56>
[root@lbz01 ~]# echo 123456|sed -r s#(..)(..)(..)#<1><2><3>#g
<12><34><56>
4. 括号符号:{}
#可以指定字符连续匹配的次数                                               4.括号符号:{}                                            
[root@lbz01 ~]# grep -E "0{2,3}" lbz_test.txt
#第一种情况: x{n,m} 表示前一个字符至少连续出现n次,最多出现m次
my qq num is 49000448.
not 4900000448.
[root@lbz01 ~]# grep -E "0{2,3}" lbz_test.txt -o
000
000
00
[root@lbz01 ~]# grep -E "0{2}" lbz_test.txt
#第二种情况: x{n} 表示前一个字符正好连续出现了n次
my qq num is 49000448.
not 4900000448.
[root@lbz01 ~]# grep -E "0{2}" lbz_test.txt -o
00
00
00
[root@lbz01 ~]# grep -E "0{2,}" lbz_test.txt
#第三种情况: x{n,} 表示前一个字符至少连续出现n次,最多出现多少次不限
my qq num is 49000448.
not 4900000448.
[root@lbz01 ~]# grep -E "0{2,}" lbz_test.txt -o
000
00000
[root@lbz01 ~]# grep -E "0{,2}" lbz_test.txt
#第四种情况: x{,m} 表示前一个字符至少连续出现0次,最多出现m次
I am lbz teacher!
I teach linux.
[root@lbz01 ~]# grep -E "0{,2}" lbz_test.txt -o
00
0
00
00
0
5. 问号符号:?
定义匹配前一个字符出现0或者1次                                           5.问号符号:?
[root@lbz01 ~]# cat >>lbz_test03.txt<<EOF                           //创建测试环境
> gd
> god
> good
> goood
> gooood
> EOF
[root@lbz01 ~]# egrep "o?" lbz_test03.txt
gd
god
good
goood
gooood
[root@lbz01 ~]# egrep "o?" lbz_test03.txt -o
o
o
o
o
o
o
o
o
o
o
补充:想让grep sed命令可以直接识别扩展正则
[root@lbz01 ~]# grep "o+" lbz_test03.txt
god
good
goood
gooood
[root@lbz01 ~]# echo 123456|sed "s#(..)(..)(..)#<1><2><3>#g"
<12><34><56>
//区分:
* 匹配前一个字符出现0次或者多次
+ 匹配前一个字符出现1次或者多次
{} 匹配前一个字符指定出现多少次,至少0次
? 匹配前一个字符出现0次或者1次

补充:利用ip address show eth0只把IP地址信息显示出来
[root@lbz01 ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UPgroup default qlen 1000
    link/ether 00:0c:29:9b:9b:9c brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f36b:6d73:ec43:617c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[root@lbz01 ~]# ip a s eth0|grep "[0-9].[0-9].[0-9].[0-9]"
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@lbz01 ~]# ip a s eth0|grep "[0-9]+.[0-9]+.[0-9]+.[0-9]+"
[root@lbz01 ~]# ip a s eth0|egrep "[0-9]+.[0-9]+.[0-9]+.[0-9]+"
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@lbz01 ~]# ip a s eth0|egrep "[0-9]+.[0-9]+.[0-9]+.[0-9]+"
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@lbz01 ~]# ip a s eth0|egrep "[0-9]+.[0-9]+.[0-9]+.[0-9]+" -o
10.0.0.200
10.0.0.255
[root@lbz01 ~]# ip a s eth0|egrep "[0-9]+.[0-9]+.[0-9]+.[0-9]+" -o|head -1
10.0.0.200
[root@lbz01 ~]# ip a s eth0|egrep "([0-9]+.)"
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@lbz01 ~]# ip a s eth0|egrep "([0-9]+.)" -o
10.
0.
0.
10.
0.
0.
[root@lbz01 ~]# ip a s eth0|egrep "([0-9]+.){3}[0-9]+" -o
10.0.0.200
10.0.0.255
[root@lbz01 ~]# ip a s eth0|egrep "([0-9]+.?){4}" -o
1500
1000
10.0.0.200
10.0.0.255
[root@lbz01 ~]# ip a s eth0|egrep "([0-9]+.?){4}"
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UPgroup default qlen 1000
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@lbz01 ~]# ip a s eth0|egrep "([0-9]+.?){4}"|head -3
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UPgroup default qlen 1000
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@lbz01 ~]# ip a s eth0|egrep "([0-9]+.?){4}"|head -3|tail -1
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@lbz01 ~]# ip a s eth0|egrep "([0-9]+.?){4}" -o|head -3|tail -1
10.0.0.200

问题及反思:

实验环境:

[root@lbz01 ~]# cat lbz_test.txt
I am $lbz teacher!
I each linux.

I like badminton ball ,billiard ball and chinese chess!
my blog is http://lbz.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.

not 4900000448.
my god ,i am not lez,but LBZ!

01. 文件中有撬棍信息,如何进行过滤

[root@lbz01 ~]# grep ‘‘ lbz_test.txt
grep: Trailing backslash
[root@lbz01 ~]# grep ‘\‘ lbz_test.txt
I each linux.

02. 文件中有$符号, 是识别变量, 还是识别普通符号

[root@lbz01 ~]# grep ‘$lbz‘ lbz_test.txt
I am $lbz teacher!
[root@lbz01 ~]# grep ‘$lbz‘ lbz_test.txt
I am $lbz teacher!

 总结:

 

系统特殊符号

符号

含义

语法

|

 

前一个命令执行结果交给后面命令处理

find /lbz -type f -name "*.txt" |xargs -i cp {} /lsn

“”

对特殊信息会做解析

echo "lbz $LANG $lsn"

‘’

所见及所得

echo ‘lbz $LANG $lsn‘

>/1

标准输出重定向符号

 

2>

错误输出重定向符

 

>>/1>>

标准输出追加重定向符号

 

2>

错误输出追加重定向符

 

../

上一级目录

 

./

当前路径

 

~

返回到家目录

 

-

两个目录之间进行快速切换

 

$OLDPWD

上一级目录

cd $OLDPWD

&&

与逻辑符号 前一个命令执行成功, 再执行后面的命令

mkdir /alex && touch /alex/lbz.txt

||

或逻辑符号 前一个命令执行失败, 再执行后面的命令

rmx /lsn/lbz.txt || echo "failed" >>/lsn/error.txt 

系统通配符号

*

模糊匹配所有内容

ll /lbz/*.txt

{}

生成序列信息 (生成一行序列)

echo {1..10}

基础正则符号

 

符号

含义

语法

^

以什么开头的信息进行匹配

grep "^lbz" /lbz/lbz.txt 

 

$

以什么结尾的信息进行匹配

grep "linux$" /lbz/lbz.txt

^$

表示匹配空行信息

grep -v "^$" /lbz/lbz.txt(-v排除内容)

.

匹配任意一个且只有一个字符

grep "." ~/lbz_test.txt

*

匹配前一个字符连续出现0次或者多次

grep "0*" ~/lbz_test

.*

匹配所有任意信息

grep "^m.*m$" ~/lbz_test.txt  

将有意义的字符信息,转义成普通字符进行识别 

grep ".$" lbz_test.txt

 

将没有意义的字符信息转成有意义的字符

[]

匹配多个字符信息,多个字符匹配时,是或者的关系

grep "l[be]z" lbz_test.txt    

[^]

对匹配的字符信息进行排除

grep "[^abc]" lbz_test.txt

扩展正则符号

grep命令识别扩展正则: egrep -E
sed
命令识别扩展正则: sed -r

+

匹配前一个字符连续出现1次或者多次

egrep "0+" lbz_test.txt

|

利用竖线可以匹配多个字符串信息

grep -E "lbz|lez" lbz_test.txt

()

将多个字符信息汇总成整体,进行过滤

grep -E "l(be)z" lbz_test.txt

{}

指定匹配前一个字符连续出现了多少次

 

{n,m}

至少连续n,最多连续m

grep -E "0{2,3}" lbz_test.txt -

{n}

匹配只连续n次的信息

grep -E "0{2}" lbz_test.txt

{n,}

至少连续n,最多不限

grep -E "0{2,}" lbz_test.txt

{,m}

至少连续0,最多m 

grep -E "0{,2}" lbz_test.txt

?

匹配前一个字符连续出现0次或者1 

egrep "o?" lbz_test03.txt

 

版权属于:木丫头


转载必须得声明


 

以上是关于正则符号的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

以下代码片段的算法复杂度

python 正则匹配 csv文件中特殊符号如■高风险 这样的black block

未解决的对“片段”部分中的符号“”的引用

2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号)。(代码片段

正则表达式