2012-04-28 19 views
-1

我有與在開始時可變空白以下文字:試圖獲得匹配的正則表達式

 Total Saving: 84% 

我有麻煩匹配。從我迄今爲止學到的(新到正則表達式)。這應該是接近的工作(我只需要相匹配,對文本的兩側):

[\s]* Total Saving: [0-9%]*

我在做什麼錯?

+0

適用於我... – Ryan 2012-04-28 15:43:52

+0

它與你想要的有什麼不同? – 2012-04-28 15:45:12

+0

這種方法可行,除非'Total Saving:'之前或之後有* no *空格,因爲正則表達式中的字面空格是重要的。 – 2012-04-28 15:45:27

回答

1

您尚未指定捕獲組來保存結果,並且百分號%在字符串中不應出現多次。

\s*Total Saving:\s*([0-9]+)%(在中間的空白處稍微靈活一點) - 第一組將包含實際百分比。

+0

乾杯,這工作,我將立即成爲一個正則表達式...! – Erbilacx 2012-04-28 15:54:09

+0

我強烈建議閱讀Jeffrey Friedl(O'Reilly)的「Mastering Regular Expressions」。這樣你可以更快地成爲一個人。 – 2012-04-28 15:56:12

0

嘗試:

/^\s+Total\sSaving:\s+([0-9]{1,3})%$/ 

只得到數字(我假設從0..100的範圍)。適用於多行。

+0

最後的美元/美元是幹什麼的?和{1,3}? – Erbilacx 2012-04-28 15:55:34

+0

^.. $表示整行由正則表達式匹配。我認爲你不需要這裏的m,因爲正則表達式不會尋找換行符(M表示:在^ .. $之間可以是換行符(\ n))。我糾正了這一點,謝謝。 {1,3}表示必須有1到3位數字。 +會查找1到無限數字。 – cr0 2012-04-28 16:04:48