首页 文章

NotePad的RegEx帮助

提问于
浏览
0

我需要RegEx的帮助我只是想不出来我需要搜索有空间的破坏的Hashtags .

所以字符串是例如:

#ThisIsaHashtagWith Space

但也可能有“有空间”这个词,我不想替换它 .

非常重要的是,字符串以“#”开头,然后是任何字符,然后单词“With Space”,我想替换为“WithSpace”来修复Hashtags .

我有一个带有10k这个破碎的Hashtags的文件,我有点整天都没有成功 .

我试过regex101.com

以下RegEx: ^#+(?:.*?)+(With Space)

即使我认为它适用于regex101.com它不在记事本中

任何帮助表示赞赏 .

非常感谢 . BR

3 回答

  • 1

    试试这个? (#.*)( ) .

    我在记事本中尝试了这个,你应该能够用 $1 替换所有 . 确保首先将查找模式设置为正则表达式 .

    const str = "#ThisIsAHashtagWith Space";
    
    console.log(str.replace(/(#.*)( )/g, "$1"));
    
  • 0

    在您当前的正则表达式中,您匹配 # 然后任何字符和捕获组中的匹配 (With Space) .

    您可以更改捕获组以捕获匹配的第一部分 .

    (#+.*?)With Space

    然后你可以在替换中使用该组:

    $1WithSpace

    作为替代方案,您可以首先匹配单个 # 后跟零次或多次任何字符非贪婪 .*? 然后使用 \K 重置报告的匹配的起始点 .

    然后匹配 With Space .

    #+(?:.*?)\KWith Space

    在更换中使用 WithSpace

    如果你想匹配一次或多次 # ,你可以使用量词 + . 如果匹配应该从字符串的开头开始,则可以在正则表达式的开头使用锚 ^ .

  • 0

    尝试使用 ^(#.+?)(With\s+Space) 作为正则表达式,因为它还匹配多个空格和制表符 - 如果您想要影响多行,请为标志执行 gmi . 我只是尝试使用以下两个字符串,每个字符串在记事本中单独一行

    #blablaWith Space
    #hello#@#$aWith    Space
    

    替换为值设置为 $1WithSpace 并且我已尝试替换replaceAll并逐个替换 - 似乎导致以下结果 .

    #blablaWithSpace
    #hello#@#$aWithSpace
    

    随意与您想要替换的其他字符串发表评论 . 还要确保在NPP中选择了常规扩展搜索模式 .

相关问题