vim 如何取消字符串的CamelCase部分?

3z6pesqy  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(123)

我有很长的markdown图像列表,如:![116-BowlOfApples](./media/116-BowlOfApples.jpg)
我想取消标题的驼峰格式,但不想取消文件名的驼峰格式
结果:![116-Bowl Of Apples](./media/116-BowlOfApples.jpg)
我正在使用:

(?<=[a-z])(?=[A-Z])

字符串
而我得到

![Bowl Of Apples-VI](./media/Bowl Of Apples-VI.jpg)


我怎样才能将这个正则表达式限制在方括号中的内容,并保持文件名不变?

suzh9iv8

suzh9iv81#

Vim解决方案可能类似于

%s/\v(!\[[^][]*[a-z])@<=([A-Z][^][]*])@=/ /g

字符串
请参阅.NET equivalent regex demo。我使用.NET选项,因为Vim和.NET正则表达式都支持在lookbehindAssert中使用可变宽度模式。

  • 图案详情 *:
  • \v-非常神奇的模式
  • (!\[[^][]*[a-z])@<=-紧接在前面的位置
  • !\[[^][]*[a-z]-一个![子字符串,则
  • [^][]*-除了[]字符之外的零个或多个字符
  • [a-z]-一个ASCII字符
  • ([A-Z][^][]*])@=-一个位置,紧接着是
  • [A-Z]-一个ASCII字符
  • [^][]*-除了[]之外的零个或多个字符
  • ]-和]字符。

相关问题