微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash的正则expression式不接受斜杠

我是相当新的bash shell脚本(和Linux太)…我尝试做一个简单的脚本,涉及到一个用户键盘给出的string的正则expression式。

clear read -p "Insert e-mail > " if [[ $REPLY =~ ^[.] ]] then echo "ERROR (code 1): e-mail cannot start with "."" elif [[ $REPLY =~ .[.]$ ]] then echo "ERROR (code 2): e-mail cannot end with "."" else if [[ $REPLY =~ ^[0-9][0-9a-zA-Z!#$%^&'*+-]+$ ]] #THIS IS WHERE I NEED HELP then echo "Good!" else echo "Bad!" fi fi

所以我想要做的是做一个正则expression式

所以用户不能从头开始。 或结束。 (我几乎这样做,它的工作)…

接下来我想做的是让string以数字开头,我用^ [0-9](我认为这是正确的)

之后..string可以是数字0-9或字母az和AZ或下一个字符:#$%^&'* + – /

所以当用户input1&(它以数字开头,其余的是可接受的字符),但它不工作..因为它需要是&(在正则expression式公式)。

接下来同样的问题发生了字符'我做了什么,是添加一个反斜杠正则expression式公式(),它的工作..

然后我试图做同样的/字符(斜杠字符),所以我做的是添加反斜杠/(反斜杠斜杠),但是当用户input1 /(它以数字开始,其余是可接受的字符),不幸的是它打印“坏!” 它应该打印好!

为什么会这样呢?

我试过 /和 / /但仍然…不能理解为什么它不工作!

Bash – replace斜线

有没有一个基于GNU Windows的文本编辑器,使用完整的正则expression式与伟大的文档查找replace?

node.js不能识别express

在FINDSTR中使用子模式

简单.htaccessredirect:如何redirect参数?

问题是存在的! 在你正在做历史扩张的角色班上。

我建议像这样预先声明你的正则表达式:

re="^[0-9][0-9a-zA-Z!#$%^&/*'+-]+$"

然后用它作为:

s='1/' [[ $s =~ $re ]] && echo "good" || echo "bad" good

其实,在字符类工作就好了:

$ [[ "1/" =~ ^[0-9][/]+$ ]]; echo $? 0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐