此代码用于检查字符是否为整数(我认为)。我试图理解这意味着什么,我的意思是......该行的每个部分,检查GREP手册页,但这对我来说真的很难。我在互联网上找到了它。如果有人能解释我grep的那部分...那么每件东西都放在那里意味着什么:
echo $character | grep -Eq '^(\+|-)?[0-9]+$'
谢谢大家!!!
答案 0 :(得分:4)
分析这个正则表达式:
'^(\+|-)?[0-9]+$'
^ - Line Start
(\+|-)? - Optional + or - sign at start
[0-9]+ - One or more digits
$ - Line End
总体而言,它匹配+123
或-98765
或9
这里-E
用于扩展正则表达式支持,-q
用于grep命令中的安静。
PS:顺便说一句,这项检查不需要grep
,可以直接在纯bash中执行此操作:
re='^(\+|-)?[0-9]+$'
[[ "$character" =~ $re ]] && echo "its an integer"
答案 1 :(得分:0)
我喜欢这张正则表达式的备忘单:
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
非常有用,您可以轻松分析
'^(+ | - )?[0-9] + $'
作为
所以它接受如下:-312353243或+1243或5678
但不接受:3 456或6.789或56 $(作为美元符号)。