2012-12-06 38 views
1

我試圖在JavaScript字符串中匹配變量和數字(圍繞與span標籤匹配)。用於變量和數字的正則表達式匹配

我在與形式X1變量的問題,C2等我的代碼最初看起來像這樣

output = output.replace(/\d+/g,"<span class=\"number\">$&</span>"); 
output = output.replace(/\)/g,"<span class=\"function\">$&</span>"); 
output = output.replace(/[a-zA-Z]+\d*/g,returnTextValue); 
//returnTextValue is a function checking whether the string is a variable or plain text 
//and highlighting accordingly 

這種形式[A-ZA-Z]造成變量+ \ d +不匹配正確,因爲它們已經被數字標籤取代。

我一直在嘗試一些使用lookaheads和像[^A-Za-z]?\d+這些數字的東西,但一直沒能找到一個好辦法。

我知道我可以匹配標籤,但想要更優雅的解決方案。

我錯過了一個明顯的邏輯解決方案,還是有人有正則表達式運算符我不知道這種情況?

+4

第一條規則中的'\ d +'是否應該匹配孤立的數字?添加邊界'\ b \ d + \ b',那麼它將不匹配'a2'類型。 –

+0

工作很好,謝謝。如果你把它作爲答案,我一定會接受。 –

回答

1

第一條規則中的\ d +是否應該匹配孤立的數字?添加邊界\ b \ d + \ b,那麼它將不匹配a2類型。 - Michael Berkowski Dec 6 at 2:55