为什么PCRE grep将前斜杠视为空白?
在bash上,我试图在一个空格后立即获取大写字母(为什么PCRE grep将前斜杠视为空白?,grep,pcre,regex-lookarounds,positive-lookbehind,Grep,Pcre,Regex Lookarounds,Positive Lookbehind,在bash上,我试图在一个空格后立即获取大写字母(a来自文件a.jpg) 这是一个负前瞻(?!,它应该在空格后返回任何大写字母。因此,它应该只返回a。但是,它返回所有大写字母: P T F A 似乎它将前斜杠视为空白?为什么?我如何才能只获得最后一个A 应在空格后返回任何大写字母 不,它根本不是这么说的。它说“任何大写字母后面都不跟正斜杠和s。”它们都不跟那个。所以你得到了所有的大写字符 你想要的是积极的回顾 (?<=\s)[A-Z] (? 应在空格后返回任何大写字母 不,它根本不是这
a
来自文件a.jpg
)
这是一个负前瞻(?!
,它应该在空格后返回任何大写字母。因此,它应该只返回a
。但是,它返回所有大写字母:
P
T
F
A
似乎它将前斜杠视为空白?为什么?我如何才能只获得最后一个A
应在空格后返回任何大写字母
不,它根本不是这么说的。它说“任何大写字母后面都不跟正斜杠和s。”它们都不跟那个。所以你得到了所有的大写字符
你想要的是积极的回顾
(?<=\s)[A-Z]
(?
应在空格后返回任何大写字母
不,它根本不是这么说的。它说“任何大写字母后面都不跟正斜杠和s。”它们都不跟那个。所以你得到了所有的大写字符
你想要的是积极的回顾
(?<=\s)[A-Z]
(?使用grep和-p
可以使用\h
匹配水平空白字符,并且,正如注释中指出的,可以使用\K
清除匹配缓冲区,然后匹配单个大写字符a-Z
echo "Path/To/File A.jpg" | grep -oP '\h\K[A-Z]'
输出
A
使用grep和-p
可以使用\h
匹配水平空白字符,并且,正如注释中指出的,可以使用\K
清除匹配缓冲区,然后匹配单个大写字符a-Z
echo "Path/To/File A.jpg" | grep -oP '\h\K[A-Z]'
输出
A
我建议你去?