我在PHP中。我想在一個以貨幣符號開頭的句子中查找數字,然後返回數字。搜索「我在鞋上花了100歐元」並返回「100」。PHP的正則表達式來查找未編碼的歐元符號
我得到這個工作了$和£:
'/[$£]([0-9.]{1,})/'
但添加了€歐元符號不起作用。 (這些句子來自解析的電子郵件,所以我不需要找到€);
preg_match_all('/[€]([0-9.]{1,})/', $sentence, $match);
我發現因此繼: regex for currency (euro) 但它不編碼的歐元符號。
要編碼的歐元符號,我已經試過:
/[\x{20ac}]([0-9.]{1,})/u
"[^-a-zA-Z0-9.:,!+£$ \\ ". chr(164) ."]"
但不能弄明白。任何幫助?
我想你想的'u'修改,以使UTF-8的模式請訪問http:// WW w.php.net/manual/en/reference.pcre.pattern.modifiers.php – tjm
您可能還想尋找代表歐元符號的實體 - '€'和'€' –
@tjm添加/ u打破正則表達式:「編譯失敗:偏移量爲2的無效UTF-8字符串」 @ dev-null-dweller已編輯。我只有€因爲文本來自電子郵件和用戶輸入。我不更改€€ – Corey