将 Word 替换为第一个 # 之后的 #Word



>有人愿意帮助记事本++的正则表达式将Word替换为#Word(仅在第一次出现#之后(?

#Celebrity #Glad #Known #Lord Byron #British #Poet

应该成为

#Celebrity #Glad #Known #Lord #Byron #British #Poet
^

若要仅在第一次出现 # 后将 Word 替换为 #Word,可以使用交替:

查找内容

(?>^[^#]*#w+h*|#w+h*|G)K(w+h*)

替换为

#1

正则表达式演示

解释

  • (?>原子组
    • ^[^#]*#w+h*从字符串的开头匹配,而不是#0+ 次,使用否定字符类,后跟匹配#。然后匹配 1+ 次单词字符,后跟 0+ 次水平空格字符。
    • |
    • #w+h*匹配#,单词字符 1+ 次,后跟水平空格字符 0+ 次
    • |
    • G在上一场比赛结束时断言位置
  • )紧密原子组
  • K忘记之前匹配的内容
  • (w+h*)在一组中捕获 1+ 个单词字符,后跟 0+ 乘以水平空格字符

您可以使用以下正则表达式来匹配和替换:

s([^#]w+)

它首先匹配空格,然后创建一个组,该组不以"#"开头,但包含一个或多个 Word 字符。

然后替换为:

' #$1'

这将在单词中添加"#",而不是以它开头。