在类 Unix 系统中的C值是LC_ALL什么?
我知道它对所有方面都强制使用相同的语言环境,但是有什么作用C呢?
我最近与Ghoti就我对这个问题的回答的评论中的正则表达式的构成进行了友好的争论。我声称以下是正则表达式:
`[Rr]eading[Tt]est[Dd]ata`
Run Code Online (Sandbox Code Playgroud)
Ghoti 不同意,声称它是一个文件 glob。维基百科上的glob页面声称(强调我的):
Glob 不包括 Kleene 星的语法,它允许多次重复表达式的前一部分;因此它们不被视为正则表达式,它可以在任何给定的有限字母表上描述更大的正则语言集。
但是,没有引用此声明,表明这只是特定维基百科编辑的意见。
The Single UNIX® Specification, Version 2指出基本正则表达式 (BRE) 甚至可以是单个字符:
普通字符是与自身匹配的 BRE:支持的字符集中的任何字符,但 BRE 特殊字符中列出的 BRE 特殊字符除外。
那么,*nix 世界中正则表达式的定义是什么,该定义是否不包括文件 glob?
我有一个alphanum包含这两行的文件:
123 abc
this is a line
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么当我运行时sed 's/[a-z]*/SUB/' alphanum,我得到以下输出:
SUB123 abc
SUB is a line
Run Code Online (Sandbox Code Playgroud)
我期待:
123 SUB
SUB is a line
Run Code Online (Sandbox Code Playgroud)
我找到了一个修复程序(sed 's/[a-z][a-z]*/SUB/'改为使用),但我不明白为什么它有效,而我的却没有。
你能帮我吗?