使用正则表达式替换除“pattern”之外的所有文本

时间:2017-05-26 01:24:04

标签: regex replace find

我有一个软件,给定一个正则表达式,可以执行查找和替换。它不是一种编码语言,因此除正则表达式之外的任何建议都不会有用。我搜索了一个表达式,它将帮助我找到除“pattern”之外的所有文本。模式不一定在字符串的开头或结尾,可以多次出现。鉴于字符串:

String xml=database.sqlEjectXML("SELECT * FROM food;");

和模式:

red blue yellow green orange purple blue black green white

在线上出现两次的模式,我试图选择除了之外的所有内容。 (以便删除所选的并仅留下图案)。 我试过了:

blue.*?green

但最后还是留下了“白色”。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:2)

它通常是这样的

查找(?:(?!blue.*?green).)*(blue.*?green)?
替换$1

扩展

 (?:
      (?! blue .*? green )
      . 
 )*
 ( blue .*? green )?           # (1)

输出

blue yellow greenblue black green