2010-06-29 38 views

回答

9
result = subject.gsub(/\A[\d_\W]+|[\d_\W]+\Z/, '') 

將刪除字符串的開始和結束非字母。

\A\Z錨正則表達式在字符串的開始/結束(^/$也將匹配換行符這可能不是你想要的東西后,前/ - 但可能不會在這種情況下,重要);

[\d_\W]+匹配一個或多個數字,下劃線或其他任何不是字母數字字符,只留下字母。

|是交替操作。

+0

對不起,我最初誤解了這個問題。已編輯我的答案... – 2010-06-29 09:28:12

0
result = subject.gsub(/^[^a-zA-Z]+/, '').gsub(/[^a-zA-Z]+$/, '') 
+0

嘿,我編輯,它現在的作品! – user163365 2010-06-29 09:32:26

+0

如果字符串包含換行符(或非ASCII字母),它仍會失敗。 – 2010-06-29 09:32:27

+0

我猜想,你會更好,嘿嘿。 – user163365 2010-06-29 09:34:41

1

在紅寶石1.9.1:

":----- pt-br:-".partition(/[a-zA-Z](...)[a-zA-Z]/)[1] 

分區搜索圖案在字符串中和之前它返回部分,比賽,和其後的部分。