2010-12-02 153 views
5

这应该很简单。我需要一个正则表达式来选择不包含某个单词的所有内容。REGEX:选择不等于某个字符串的所有内容

所以如果我有这句话:“这句话中间有一个词。” 而正则表达式得到的只是“中等”,我应该选择该句子中的所有内容,而不是“中等”。

有没有简单的方法来做到这一点?

谢谢。

+0

呃,只需将数据复制到一个字符串var并执行搜索/替换....无论如何可能比RE更便宜。 – Keng 2010-12-02 18:36:09

+0

这个单词可以在句子中多次出现吗? – 2010-12-02 19:50:04

回答

2

单个正则表达式匹配操作不可能是不连续的。

您就可以使用两个捕获组:

(.*)middle(.*)

然后拼接捕获组1和2在赛后的内容。

您可能希望在解析器中启用“点也匹配换行符”选项。
见例如Java's DOTALL.NET's SinglelinePerl's s

+0

当/如果你这样做,确保你启用`.`以匹配换行符。 – Keng 2010-12-02 18:29:00

1

正环视是要走的路:

/^(.+)(?=middle)/ -- gets everything before middle, not including middle 

/(?!middle)(.+)$/ -- gets everything after middle, not including middle 

然后你只合并双方

的结果
相关问题