代码之家  ›  专栏  ›  技术社区  ›  elmt

跳过regex中的字符

  •  1
  • elmt  · 技术社区  · 14 年前

    我有以下数据

    Animals = Dog Cat Turtle \
              Mouse Parrot \
              Snake
    

    我想让regex构建一个没有反斜杠的动物的匹配: Dog Cat Turtle Mouse Parrot Snake

    我有一个雷吉士,但需要帮助完成它。

    /ANIMALS\s*=\s*([^\\\n]*)/
    
    3 回复  |  直到 14 年前
        1
  •  1
  •   Eamon Nerbonne    14 年前

    雷杰克斯怎么样 \b(?!Animals\b)\w+\b 它匹配所有不匹配的单词 Animals ?使用 scan 收集所有匹配项的方法,例如

    matchArray = sourceString.scan(/\b(?!Animals\b)\w+\b/)
    
        2
  •  3
  •   Platinum Azure    14 年前

    既然您指定了一种语言,我需要问您:为什么您要依赖regex来完成所有工作?不要通过强迫regex做任何事情来让问题变得更困难。

    试试这个方法…

    1. 使用 gsub! 把反斜杠去掉。
    2. split 任何空白处的字符串。
    3. 去掉前两个标记(“动物”,“=”)。
    4. 用一个空格或任何其他分隔符联接数组。

    所以您可能需要的唯一regex是一个用于空白分隔符拆分的regex。不过,我对鲁比还不太了解,不知道你会怎么做。

        3
  •  0
  •   racerror    14 年前

    确保你与忽略案例匹配,因为没有它,动物将无法与动物匹配。