跳过正则表达式中的字符

时间:2010-09-30 18:57:43

标签: ruby regex

我有以下数据

Animals = Dog Cat Turtle \
          Mouse Parrot \
          Snake

我希望正则表达式只构建一个没有反斜杠的动物的匹配:Dog Cat Turtle Mouse Parrot Snake

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

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

3 个答案:

答案 0 :(得分:3)

由于你指定了一种语言,我需要问你:为什么你依赖正则表达式来做所有事情?不要强迫正则表达式做任何事情,使问题变得更难。

尝试这种方法......

  1. 使用gsub!删除反斜杠。
  2. split任何空格上的字符串。
  3. 移出前两个令牌(“Animals”,“=”)。
  4. 使用单个空格或任何其他分隔符加入数组。
  5. 因此,您可能需要的唯一正则表达式是用于空白分隔符拆分的正则表达式。我不太了解Ruby,无法准确地说出你将如何做到这一点。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

确保您与ignore-case匹配,因为没有它,ANIMALS将无法匹配动物。