2013-02-14 64 views
0

我讀了很多鏈接的問題,但無法找到我需要的。這裏是我的問題:在Javascript中替換正則表達式匹配的結果

inputStr = "<a b c> <c f a> <h a d>"; 

,我想抓住唯一的每個<...>

OutputStr = "a c h"; 

我嘗試的第一個元素類似

mychar.replace(/<[a-z](.*)>/g, '$1'); 

$1只給我<a b c>

有沒有人想法?

回答

7

您的正常表達是錯誤的。你需要匹配第一個字母,但不能匹配後面的所有字母。不要在目前的情況下,忘記一個懶惰的比賽?

"<a b c> <c f a> <h a d>".replace(/<([a-z]).*?>/g, "$1"); // "a c h" 

REF:https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions

+0

他就不必再問一次,他有一個變化的問題:)說明會很好 – 2013-02-14 14:17:20

+0

@MichelFeldheim所以你認爲我的回答是錯誤的? ;)如果答案沒有提供解釋,那麼我們假設OP會自己發現它是如何工作的。至少我總是這樣做,如果我得到解決方案。此外,我認爲不值得重寫[MDN關於正則表達式的文章](https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions)。 – VisioN 2013-02-14 14:21:17

+2

答案是正確的,現在它是有幫助:) – 2013-02-15 08:17:10

1
inputStr = "<a b c> <c f a> <h a d>"; 

OutputStr = inputStr.replace(/<([a-z]).*?>/g, "$1"); 
+2

這個答案似乎並不增加了前一個。 – 2013-02-14 14:12:15