【问题标题】:match first space on a line using sublime text and regular expressions使用崇高文本和正则表达式匹配行上的第一个空格
【发布时间】:2013-10-27 22:04:44
【问题描述】:

所以正则表达式对我来说一直很困难。我很沮丧试图找到一个正则表达式来选择一行上的第一个空格。那么我可以使用 sublime text 用 / 替换它

如果你能给出一个有助于帮助的快速解释

【问题讨论】:

    标签: regex sublimetext2


    【解决方案1】:

    本着@edi 的回答精神,但对正在发生的事情进行了一些解释。将行首与^ 匹配,然后用[^\s]*\S* 查找不是空格的字符序列(前者可能比后者在更多的编辑器、库等中工作),然后找到第一个带有\s 的空白字符。把这些放在一起,你有

    ^[^\s]*\s
    

    您可能希望对非空白和空白部分进行分组,以便进行您所说的替换:

    ^([^\s]*)(\s)
    

    那么替换模式就是\1/

    【讨论】:

    • 非常感谢。我开始明白了,但我不确定是否会完全掌握正则表达式。
    • 如何只匹配第一个空格?这似乎匹配整个单词加上空格:
    • @user798719,您可以使用^[^\s]*\K\s 仅匹配空格。 (“\K 重置报告匹配的起点。任何先前使用的字符都不再包含在最终匹配中。”)
    • @matt 用于查找和替换目的,这会突出显示行上第一个空格之前的第一个空格和文本 - 我只想替换行上的第一个空格。它还捕获换行符(在没有前面内容的行上只有一个空格)
    【解决方案2】:

    你可以使用这个正则表达式。

    ^([^\s]*)\s
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-07
      • 2014-05-14
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      相关资源
      最近更新 更多