我有很长的图像降价列表,例如:

我想取消标题的驼峰式大小写,但不想取消文件名
得到这个结果:

我正在使用:
(?<=[a-z])(?=[A-Z])
我明白了

如何将此正则表达式限制为方括号中的内容并保留文件名不变?
Vim 解决方案看起来像这样
%s/\v(!\[[^][]*[a-z])@<=([A-Z][^][]*])@=/ /g
请参阅 .NET 等效正则表达式演示。我正在使用 .NET 选项,因为 Vim 和 .NET 正则表达式都支持后行断言内的可变宽度模式。
图案详情:
\v
- 非常神奇的模式(!\[[^][]*[a-z])@<=
- 紧接其后的位置
!\[[^][]*[a-z]
- 一个 ![
子串,然后 [^][]*
- 除 [
和 ]
字符[a-z]
- 小写 ASCII 字母([A-Z][^][]*])@=
- 紧随其后的位置
[A-Z]
- 大写 ASCII 字母[^][]*
- 除 [
和 ]
]
- 和一个 ]
字符。维克托,非常感谢你。我现在就尝试一下。