sh 找不到非正则检测是否存在子字符串的方法的变通非正则检测方式

前端之家收集整理的这篇文章主要介绍了sh 找不到非正则检测是否存在子字符串的方法的变通非正则检测方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

正则的形式如下

`expr "$str" : '.*\(substr\)'`

因为如果substr中包含有特殊字符时就比较麻烦.暂时想到有什么能一句就写完的不用正则的方式,利用替换后字符长度变化来确认是否包含有子串的变通方式:且支持多行

queue=`sudo -u root postqueue -p` # must runt postqueue by root
echo "queue list under
$queue"
len=${#queue}
mail='_'
mail+=$bName
mail+='@'
mail+=$myDomain
queue=${queue//$mail/'*'}
nLen=${#queue}
echo "$len $nLen
$queue"

------------测试输出,子串都被替换成*号-------------

queue list under -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------BDF9C100576* 3177 Mon Dec 26 15:27:38 MAILER-DAEMON service_23@myhrd.cn2202F10057A* 1208 Mon Dec 26 15:27:43 service_23@myhrd.cn 1015488527@qq.comB8348100475* 1208 Mon Dec 26 15:27:42 service_23@myhrd.cn 1016255977@qq.comC9D6910048D* 1208 Mon Dec 26 15:27:42 service_23@myhrd.cn 1016261569@qq.com105A0100531* 1208 Mon Dec 26 15:27:43 service_23@myhrd.cn 1015483425@qq.com-- 10 Kbytes in 5 Requests.699 644 -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------BDF9C100576* 3177 Mon Dec 26 15:27:38 MAILER-DAEMON service*2202F10057A* 1208 Mon Dec 26 15:27:43 service* 1015488527@qq.comB8348100475* 1208 Mon Dec 26 15:27:42 service* 1016255977@qq.comC9D6910048D* 1208 Mon Dec 26 15:27:42 service* 1016261569@qq.com105A0100531* 1208 Mon Dec 26 15:27:43 service* 1015483425@qq.com-- 10 Kbytes in 5 Requests.

原文链接:https://www.f2er.com/regex/363024.html

猜你在找的正则表达式相关文章