【问题标题】:Regex using Notepad++ to add space before a capital letter正则表达式使用 Notepad++ 在大写字母前添加空格
【发布时间】:2012-02-15 16:18:10
【问题描述】:

我环顾四周,找到了很好的答案,但没有一个适用于 notepad++,大多数适用于 java 和 php。我在下面找到了搜索字符串,但显然我是一个正则表达式的菜鸟,因为我不知道在记事本++中什么打开/关闭标签是正确的。

我想在每个大写字母前加一个空格。

例子:

StackOverflowKegger

变成

堆栈溢出 Kegger

这是我发现的。

查找:[a-z]+[A-Z]+ 替换:$1($前有空格)

查找:

(?<!^)((?<![:upper:])[:upper:]|[:upper:](?![:upper:]))

("(\\p{Ll})(\\p{Lu})","$1 $2")

(?!^)(?=[A-Z])

任何帮助将不胜感激。

【问题讨论】:

    标签: regex notepad++ capitalization


    【解决方案1】:

    搜索字符串:(.)([A-Z])
    替换:\1 \2

    这不会在首字母大写之前插入空格。

    【讨论】:

    • 由于 Notepad++ 不支持正则表达式的负向回溯,我想这个解决方案是最好的。
    • 另外,请记住在 Notepad++ 中检查“匹配大小写”以使正则表达式区分大小写。
    • 一定要记得在 Notepad++ 中检查“匹配大小写”以使正则表达式区分大小写。就像@iDifferent 所说的那样。
    【解决方案2】:

    查找:^([A-Z])

    替换:\1

    这将为notepad++中的第一个大写字符添加一个空格 确保将空格放在替换部分中的 \1 之前。

    WABET :

    【讨论】:

      【解决方案3】:

      在 Notepad++ 中,执行 search-n-Replace (ctrl+h),在 'find what' 中输入 '([a-z])([A-Z])' 不带单引号。在 '替换为' 输入 '\1 \2' 不带引号。

      选择单选按钮“正则表达式”并确保选中“匹配大小写”复选框。现在找到下一个并继续替换。它将骆驼或帕斯卡大小写字符串转换为除了第一个之外的每个大写字母前都有一个空格的单词。

      希望对您有所帮助。我只是将它用于我的一项任务。

      【讨论】:

        【解决方案4】:

        查找内容:.\K([A-Z])
        替换为: $1space $1 之前 笔记!!!!!!必须检查match-case 见附图。

        【讨论】:

          【解决方案5】:

          如果您可以在第一个单词之前使用空格,那么这个解决方案对我有用。

          我在选中正则表达式单选按钮的情况下使用了以下内容。:

          查找内容:([A-Z]) 替换为: \1

          注意替换中\1 之前的前导空格

          【讨论】:

          • 这将在字符串的第一个字符之前添加一个空格,这是不想要的。
          • 它会的。这对我来说不是问题,因为我可以在之后修剪它。我将更新我的答案以包含该警告。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-28
          • 2014-08-15
          • 1970-01-01
          • 2020-04-30
          相关资源
          最近更新 更多