跳过字符在正则表达式

问题描述:

,我有以下数据跳过字符在正则表达式

Animals = Dog Cat Turtle \ 
      Mouse Parrot \ 
      Snake 

我想正则表达式来构建一个匹配只是动物与没有反斜杠:Dog Cat Turtle Mouse Parrot Snake

我有一个正则表达式,但需要一些帮助完成它。

/ANIMALS\s*=\s*([^\\\n]*)/ 
+1

为什么不从数据中去除\ – JoshD 2010-09-30 19:06:02

如何回合正则表达式\b(?!Animals\b)\w+\b匹配所有不是Animals的单词?使用scan方法来收集所有这样的匹配,例如

matchArray = sourceString.scan(/\b(?!Animals\b)\w+\b/) 
+0

谢谢,这不完全是我所需要的,但它帮助我朝正确的方向发展。 – elmt 2010-09-30 19:31:28

既然你指定了一种语言,我需要问你这个问题:你为什么要依赖一切的正则表达式?不要让问题比通过强制正则表达式去做所有事情更难。

试试这个办法,而不是...

  1. 使用gsub!摆脱反斜杠。
  2. split任何空白字符串。
  3. 移出前两个标记(“动物”,“=”)。
  4. 使用单个空格或任何其他分隔符来加入数组。

所以你可能需要的唯一正则表达式是一个用于空格分隔符的分割。不过,我不太了解Ruby,可以确切地说出你会怎么做。

+1

+1同意。使用正确的工具来完成这项工作。不是每件事都需要正则表达式。 – JoshD 2010-09-30 19:07:28

+0

因为数据比我所说的要简单得多。我不能使用gsub!因为我正在解析整个文件。这只是一小段示例文本。 – elmt 2010-09-30 19:26:20

确保您与忽略大小写匹配,因为ANIMALS不会在没有它的情况下匹配动物。