0
爲了清理我的Rails項目的代碼,我將所有正則表達式字符串移動到MySQL。我如何將位於MySQL字段中的字符串添加到我的匹配方法中?這裏是我想要做的一個例子:在Rails項目中使用存儲在mysql字段中的regex字符串
foobar = []
regular_ex = StringDb.pluck(:id, :regex)
# :regex is a column that stores regex strings, ie. '/[a-c]|[1,2,3]/'
regular_ex.each do |exp|
if foo.match(exp[1])
foobar << exp[0]
如果我的問題不清楚,請讓我知道。 在此先感謝!
嗨Dabrorius,所有的正則表達式字符串已經存在,位於我的MySQL數據庫(StringDb)。我的問題是,我怎麼能真正使用我的db中的正則表達式字符串爲我的foo.match正則表達式。例如,假設我的代碼片段中的exp [1]是我的db中的一個字符串='/ [a-c] | [1,2,3] /'。我試圖把這個字符串放到我的正則表達式中。即。 foo.match(/ [a-c] | [1,2,3] /) – Cosi 2015-03-30 19:17:36
你應該反過來使用它。你應該在正則表達式上調用匹配,然後在字符串中傳遞它。 /[a-c]|[1,2,3]/.match(foo)所以foo應該是一個字符串,你應該在正則表達式上調用匹配。 – Dabrorius 2015-03-30 19:33:15
謝謝Dabrorius。你建議使用Regexp.new(exp [1])。match(「stringToMatch」)工作。我仍然不確定爲什麼我的方式不起作用,但我確定它在正則表達式/匹配文檔中。至於爲什麼我將所有的正則表達式字符串移動到MySQL數據庫,它爲我存儲的大約100個不同的正則表達式字符串在我的Rails應用程序中保存了大約300行代碼。 (幹我的瘋狂) – Cosi 2015-03-30 21:17:28