首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash Regex检查字符串的第一个字符是否为数字

Bash Regex检查字符串的第一个字符是否为数字
EN

Stack Overflow用户
提问于 2016-04-07 11:15:57
回答 2查看 9.5K关注 0票数 5

我在写一个使用跟踪路径的脚本。我正在遍历跟踪路由的每一行,然后遍历每个单词(由空格分隔)。但是,有时跟踪路由返回一个*字符,这会在回显时引起问题(文件名是输出的)。

我一直在摆弄RegEx,到目前为止我已经想出了这样的方法:

代码语言:javascript
复制
if [[ $item =~ ^\d ]];

项目是跟踪路由的一部分。

对于跟踪路由行中的每一项,我只想检查第一个字符是否等于一个数字,然后相应地继续。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-07 11:17:54

\dPOSIX正则表达式中不受支持(由Bash使用)。您需要用[0-9]替换它,如下所示:

代码语言:javascript
复制
if [[ $item =~ ^[0-9] ]];

查看这个StackOverflow的答案

还可以使用[:digit:]使阅读变得更容易:

代码语言:javascript
复制
if [[ $item =~ ^[[:digit:]] ]];
票数 13
EN

Stack Overflow用户

发布于 2016-04-07 11:18:47

不需要使用regex就足够了:

代码语言:javascript
复制
[[ $item == [0-9]* ]] && echo "it starts with a digit"

您还可以使用:

代码语言:javascript
复制
[[ $item == [[:digit:]]* ]]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36474576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档