Regex 记事本++;具有不匹配模式的正则表达式问题

Regex 记事本++;具有不匹配模式的正则表达式问题,regex,notepad++,Regex,Notepad++,我试图修改不包含一种模式但包含另一种模式的行: Table: tablename page. Table: xxcellname 每当单词“Table”出现在一行的开头,而单词“page”没有出现在该行上时,我想用空格替换“Table:”。 所以在上面的例子中 Table: xxcellname 变成 cellname 及 保持不变 我试过使用: 替换(^表:)^(!?.*页)。*$ 使用\2尝试以下表达式: (?m)^Table:((?:(?!page

我试图修改不包含一种模式但包含另一种模式的行:

Table: tablename         page.
Table: xxcellname 
每当单词“Table”出现在一行的开头,而单词“page”没有出现在该行上时,我想用空格替换“Table:”。 所以在上面的例子中

Table: xxcellname
变成

         cellname

保持不变

我试过使用:

替换
(^表:)^(!?.*页)。*$
使用
\2

尝试以下表达式:

(?m)^Table:((?:(?!page).)*)$
并替换为6个空格和第一个捕获组:

      \1
应用于输入时:

Table: tablename         page.
Table: xxcellname 
Table: tablename         page.
Table: xxcellname 
Table: tablename         page.
Table: xxcellname 
它将提供以下输出:

Table: tablename         page.
       xxcellname 
Table: tablename         page.
       xxcellname 
Table: tablename         page.
       xxcellname 

我觉得你的正则表达式太复杂了。只需使用负前瞻并替换为一些空格:
^Table:(?!.*page)
。注意:
默认情况下不匹配换行符
表中的
xx
的模式是什么:xxcellname
,因为如果没有模式,这将很难扩展@JorgeCampos要求的内容,
xx
在将
表:xxcellname
转换为
cellname
时会去哪里?如果这是问题中的错误,请更正。或者,为什么删除“xx”?这是故意的吗?“x”代表“任何字符”还是文字“x”?
Table: tablename         page.
       xxcellname 
Table: tablename         page.
       xxcellname 
Table: tablename         page.
       xxcellname