如何取消字符串的驼峰式命名?

问题描述 投票:0回答:2

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

![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)

如何将此正则表达式限制为方括号中的内容并保留文件名不变?

regex vim regex-lookarounds
2个回答
0
投票

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 字母
    • [^][]*
      - 除
      [
      ]
    • 之外的零个或多个字符
    • ]
      - 和一个
      ]
      字符。

0
投票

维克托,非常感谢你。我现在就尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.