我使用此/[-\+,\.0-9]+/
來匹配字符串中的數字,如+4400,00 %
或-3500,00 %
或0.00 %
。歐洲編號正則表達式
我想要的匹配結果是+4400,00
,我正確地得到它。
如果我想要像+4.400,00 %
(點數千)的字符串相同的結果怎麼辦?
編輯
怎麼辦我要修改我的正則表達式像<font color="red">+44.500 %</font>
字符串匹配的號碼?
我使用此/[-\+,\.0-9]+/
來匹配字符串中的數字,如+4400,00 %
或-3500,00 %
或0.00 %
。歐洲編號正則表達式
我想要的匹配結果是+4400,00
,我正確地得到它。
如果我想要像+4.400,00 %
(點數千)的字符串相同的結果怎麼辦?
編輯
怎麼辦我要修改我的正則表達式像<font color="red">+44.500 %</font>
字符串匹配的號碼?
/[\-\+]?\s*[0-9]{1,3}(\.[0-9]{3})*,[0-9]+/
這應該包括字符串
+
或-
,然後也許開始有些空格關於你的(內部字符串匹配的號碼)的附加問題的背後,你應該查看你正在使用的任何正則表達式API的手冊。大多數API有獨立的search
和match
方法; match
希望整個字符串成爲正則表達式語言的一部分,而search
也將匹配子字符串。
你有點快)) – Werolik
對不起,請問你最後一個案子:「+ 44。050%「:」+「或減號與數字之間的空格!那麼是什麼? –
以'/ [\ - \ +]?\ s * [0-9]'開頭''s'通常是像'[\ t \ r \ n]',因此匹配一個空白字符,所以'\ s *'匹配零個或多個空白字符。 – 2011-09-15 15:07:22
你的正則表達式已經匹配「。」。但這聽起來像你還想剝奪「。」出來嗎?如果是這樣的話,你需要一個替代品。在Perl,
if ($input =~ /(-|\+)[0-9][,\.0-9]+/) {
$input =~ s/\.//;
} else {
die;
}
我也改變了正則表達式,因此將只匹配 - 和+在啓動,因此它需要一個初始位
[\+-]?
- 正負
\d{1,3}
- 一些數字
(\.\d{3})*
- 前
,\d{2}
逗號和2個數字的3位數字與點位組
所以我們得到:
/[+-]?\d{1,3}(\.\d{3})*,\d{2}/
我認爲應該有一個單獨的StackExchange「寫我的正則表達式」。或者更好的是,一位將軍「爲我工作」。 –
你的正則表達式已經匹配'+ 4.400,00'。我沒有看到問題。另外,你可以寫'/ [ - +,。0-9] + /',而不改變意思。 –
你有理由......對不起: - \但它非常緊急....你能指點我到一個可以快速學習這個特定目的的地方嗎? –