shell | 判断输入是否包含标点符号

该脚本用于判断用户输入的字符串是否包含标点符号。通过使用sed命令和正则表达式移除非字母和数字的字符,然后比较处理前后的字符串是否相同来确定。如果字符串经过处理后不变,则说明不含标点符号;反之,则含标点符号。
摘要由CSDN通过智能技术生成
#!/bin/bash
#判断输入的字串是否包含标点符号
#包含标点符号返回0,不包含返回1
isIncludePunct(){
#输入的第一个参数位$1
#sed是流编辑器,s是sed的替换命令,替换源[^[:alnum:]],使用了正则表达式,代表除大小写字母和0-9数字之后取反,也就是除了大小写字符和数字之外的字符,替换目标为空,/g表示s标志结束
#实质就是将输入的字串的标点符号字串去掉了
newInput="$(echo $1 | sed 's/[^[:alnum:]]//g')"
#判断替换之后的字串和原来的字串是否相等,相等代表原来的字串本来就没有特殊字符
if [ "$newInput" = "$1" ]
then
return 1
else
return 0
fi
}


# -p选项(提示符)input:将输入的内容作为变量值赋值给input
read -p "请输入需要判断的字串" input
#if判断,当不是字符串判断的时候不需要中括号
if  isIncludePunct "$input" 
then
echo "包含标点符号"
exit 1
else
echo "不包含标点符号"
fi
#exit 1是程序正常退出,exit 0是程序异常退出
exit 0

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值