首页 > 解决方案 > NotePad++ 的正则表达式帮助

问题描述

我需要 RegEx 方面的帮助我只是想不通我需要搜索有空格的已损坏 Hashtags。

所以字符串例如:

#ThisIsaHashtagWith Space

但也可能有我不想替换的“With Space”字样。

如此重要的是字符串以“#”开头,然后是任何字符,然后是我想替换为“WithSpace”以修复主题标签的单词“With Space”。

我有一个包含 10k 个损坏的 Hashtags 的文档,我尝试了一整天都没有成功。

我在 regex101.com 上试过

使用以下正则表达式: ^#+(?:.*?)+(With Space)

即使我认为它适用于 regex101.com 它在 Notepad++ 中不起作用

任何帮助表示赞赏。

非常感谢。BR

标签: regexnotepad++

解决方案


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

您可以更改捕获组以捕获比赛的第一部分。

(#+.*?)With Space

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

$1WithSpace

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

然后匹配With Space

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

在更换使用WithSpace

如果要匹配一次或多次#,可以使用 quantifier +。如果匹配应该从字符串的开头开始,您可以^在正则表达式的开头使用锚点。


推荐阅读