Python的 glob 模块中的正则表达式,大约第92行,
magic_check = re.compile('[*?[]')
我假设这是为了检查一个模式是否在内部有*
和?
,这在许多shell上下文中经常使用。但是[
呢? bash或其他常用shell中[
的含义是什么?或者[
在正则表达式中有特殊功能吗?
答案 0 :(得分:2)
[和[[用于在bash中创建条件表达式,它们通常用于if和while语句中。如果您在bash中键入help [
,它有助于解释它们的工作原理。
修改强>
我刚刚意识到这是在globbing的背景下。在这种情况下,适当的含义是,在bash中,您可以使用globs中的字符类,与正则表达式中的字符类类似。例如:file_[0-9].txt
将匹配file_0.txt,file_1.txt等
答案 1 :(得分:0)
在文件名glob中,[a-c]
匹配a
和c
之间的字符:a
,b
,c
。
示例:
$ touch a
$ touch b
$ touch c
$ touch d
$ ls [a-c]
a b c