匹配不包含特定字符的行

Match lines that do not contain certain character

我需要匹配不包含大写字母的行 '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] 的事情吗?但是,我仍然对放置什么样的 prefix/suffix 来匹配它在行中的可变位置感到困惑。

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

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