匹配不包含特定字符的行

时间:2015-01-15 01:22:18

标签: regex regex-negation

我需要匹配不包含大写字母“K”的行。字符“K”可以开始行,可以在中间,也可以是最后一个字符。我已尝试过两次否定前瞻,但当“K”开始行时,这似乎失败了。

我想保留这些内容:

  

Coronograph H-band / Y Direct / Non-Redundant J

但我想排除这些界限:

  

'Coronograph K1-band / K2 Direct / Non-Redundant K2'

我需要它在python正则表达式引擎和JavaScript正则表达式引擎中工作,所以我不能使用后视表达式。

当我尝试.*[^K]+.*[^K].*之类的内容时,它仍会匹配其中带有“K”的行。

我从this question获取为什么我不能只说[^K]并完成它。但由于我的'K'可能有或没有一个角色可以开始,我很困惑如何继续。如果我说.[^K].*[^K],它仍会匹配'K2 Direct'。如果我说[^K].[^K].*,它将匹配“K”未开始行的行。

也许我在这里抓住吸管,但在我的清单中,'K'将跟随'1'或'2'。我可以做[^K][^12]之类的事情吗?但同样,我仍然难以置于什么样的前缀/后缀来匹配它在行中的变量位置。

1 个答案:

答案 0 :(得分:0)

正则表达式:^[^K]*$用于python和javascript。

这个正则表达式类似于一行(^),只包含非大写字母K,直到行$的结尾。