随笔 - 366  文章 - 0  评论 - 101  阅读 - 30万

正则表达 比较两个浮点数

如果写成[ "$a" -lt "$b" ],当$a $b 是整数(integer)时,工作得很好,但对于浮点数,会得不到想要的结果,它只会给你“-bash: ***期待整数表达式”的结果。

为了比较两个浮点数,可以写成这样
[ `echo "$a > $b" | bc` -eq 1 ]  #   -eq 1  或者  -ne 0
 
 

zzx@zzx103:/zzxdisk/zzx/Desktop/xuqiang/shell$ echo "1.0 > 2" | bc
0
zzx@zzx103:/zzxdisk/zzx/Desktop/xuqiang/shell$ echo "11.0 > 2" | bc
1

 

 

^[0-9]\\d*$

^[1-9]\d+\.[0-9]{1,2}|0\.[0-9]{1,2}|[1-9]\d+|0$  数字+两位小数

整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。"^\d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
只能输入非零的负整数:"^\-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。   

 

 

 
判断文件扩展名是否符合要求
 
 
 
 
 

zzx@zzx11:~$ expr "a.abc" : ".*\.ac"        
0
zzx@zzx11:~$ expr "a.abc" : ".*\.abc"   #非0
5

 

 *  匹配0次或多次之前字符

 +  匹配1个或多个之前字符

 ? 匹配0个或1个之前字符

 .   匹配任意1个字符

 

 

 []  匹配字符集

 [^ ]   ^表示取反

 判断是否整数

1、


read num
echo $num|grep -q '^[-]\?[0-9]\+$' && echo yes || echo error

 

 

正则表达式^[0-9]+ [+-*\] [0-9]+ = [0-9]+$的解释

 

1.^代表以xxx开头的行,
[0-9]+表示至少出现一个0-9之间的数字。
合起来 就是 必须开头的数字是0-9之间的数字,个数最少一个

2.[+-*\] 表示这是个符号中的其中一个,,也就是 + - * /运算符

3.[0-9]+ 接着。后面跟着必须是 0-9之间的数字。个数最少一个

4 = 等号就表示 =号这个符号
5 [0-9]+$ ..$表示一行的结尾,所以这里的意思必须用0-9之间的字符结果

 

2、read -p “Pls input:”  a

    expr  $a + 0 >/dev/null    #  和零相加   不是整数相加会报错     注意$a为空或者字符时~~~  提前判断是否空

    [ $?  -eq  0 ]  &&  echo int  ||  echo chars    # 整数不报错$? 为0

posted on   寒星12345678999  阅读(306)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示