正则符号
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 |
||
+ |
匹配前一个字符连续出现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 位整数(有符号或无符号)。(代码片段