首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Basic linux regex

Basic linux regex
EN

Stack Overflow用户
提问于 2014-03-27 16:43:40
回答 1查看 44关注 0票数 0

我正在学习Linux命令行,并遇到了一个使我感到困惑的正则表达式。

有人能不能把这事做一遍,解释一下它在做什么?我知道这第一部分,因为读将使用答复作为一个变量,如果没有提供。

代码语言:javascript
复制
read -p "Enter a single item > "

# is input a valid filename?
if [[ $REPLY =~ ^[-[:alnum:]\._]+$ ]]; then 
        echo "'$REPLY' is a valid file name."

比如为什么.-在里面?是否检查$REPLY的开头是否为破折号?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-27 16:46:40

表达方式是:

代码语言:javascript
复制
^         -- Start of the string
[         -- Character class start
-         -- A literal dash
[:alnum:] -- POSIX-style alphanumeric (a-z, 0-9)
.         -- A literal period
_         -- A literal underscore
]         -- End character class
+         -- One or more of anything in the character class
$         -- End of the string

-是一个文字破折号。它位于字符类的开头,因此它不会被解释为类范围。例如,[a-c]a, b, c,而[-ac]-, a, c

另外,这是对文件名的不完整检查。据我所知,文件名可以包含除目录分隔符(例如/)以外的任何字符--偶数空格和换行符。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22693975

复制
相关文章

相似问题

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