2012-10-22 64 views
0

我必須要求檢查值91981552e1775310VgnVCM100000a2b6140a____;standard;212.58.244.70;Oct-22-2012;24353teehdtehg;,其中日期和24353teehdtehg是動態的。匹配正則表達式

我該如何更通用一些,以便檢查expected_value =~/actual_value/,排除Ruby中的動態值。

+4

爲什麼[是一個正則表達式正確的解決方案?](http://www.codinghorror.com/blog/2008/06/regular-expressions-now - 您 - 擁有 - 兩problems.html)。當然,他們是代碼化的,但是如果你的目標發生了變化,你有沒有更好地處理你的時間,而不是找到一個能夠工作並且會繼續工作的東西?我會在字符串上使用'split(';')'並繼續前進。 –

回答

4

如果可能的話,我不會使用正則表達式。您似乎有一個輸入字符串,可以很容易地進行修改,並且可以在不使用正則表達式的情況下與預期值進行比較。

str = "91981552e1775310VgnVCM100000a2b6140a____;standard;212.58.244.70;Oct-22-2012;24353teehdtehg;" 

actual_value = str.split(';')[0..-3].join(';') 
# "91981552e1775310VgnVCM100000a2b6140a____;standard;212.58.244.70" 

然後,只需比較兩個

expected_value == actual_value 
+0

不錯,謝謝凱爾! – Kayen

0

我想你可以使用這樣的:這取決於該字符串實際上可能

/91981552e1775310VgnVCM100000a2b6140a____;standard;212\.58\.244\.70;(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{2}-\d{4};\d{5}[a-z]{9};/