Notepad ++正则表达式查找/替换使用后面的工作不起作用

时间:2015-12-04 19:21:48

标签: regex search replace notepad++ lookbehind

我有以下CSS标记。

.previous-container{
    float:left;
}
.primary-commands {
    float:right;
}

使用正则表达式语法搜索(?<=[\s,;])([a-zA-Z\-]+):它会按预期突出显示CSS属性名称,但是,在单击替换时,不会替换任何内容。我尝试在替换行中使用组令牌语法,例如$[nth group]和任何普通的文字字符串替换。无论我的尝试,它都不会用任何东西替换匹配的字符串。我使用的是notepad ++版本6.7.5。也许有一些明显的我在这里失踪了?

1 个答案:

答案 0 :(得分:2)

根据对原始问题的评论,这里有一些可以解决我问题的解决办法。

选项#1

使用简单的非后瞻组匹配语句(例如(?<=[\s,;]))替换正则表达式语句([\s,;])的lookbehind部分。这将继续将搜索结果限制为以lookbehind中指定字符开头的字符串。唯一需要注意的是,在我的替换字符串中,例如$1 $2我需要省略不应该是替换字符串一部分的不受欢迎的匹配字符。

选项#2

使用“全部替换”按钮。在正则表达式语句中使用正向lookbehind时,它将正确执行替换,而不是使用“替换”按钮进行单次替换。

我选择#1只是因为它实现了我所需要的,同时允许我一次只执行一次替换。对于较大的文档,我不想使用“全部替换”,直到我彻底测试了我的正则表达式。