2010-09-30 106 views
1

,我有以下數據跳過字符在正則表達式

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

回答

1

如何回合正則表達式\b(?!Animals\b)\w+\b匹配所有不是Animals的單詞?使用scan方法來收集所有這樣的匹配,例如

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

謝謝,這不完全是我所需要的,但它幫助我朝正確的方向發展。 – elmt 2010-09-30 19:31:28

3

既然你指定了一種語言,我需要問你這個問題:你爲什麼要依賴一切的正則表達式?不要讓問題比通過強制正則表達式去做所有事情更難。

試試這個辦法,而不是...

  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

0

確保您與忽略大小寫匹配,因爲ANIMALS不會在沒有它的情況下匹配動物。