正则表达式匹配值前缀/后缀货币符号/代码

时间:2014-08-04 15:21:33

标签: regex currency cultureinfo

我需要正则表达式匹配&提取以货币为前缀(或后缀)的十进制值。 以下是一些例子

10$
10.01 $
$ 10.012
61 USD
£ 50.51
94 GBP

发现这个\ p {Sc}非常有用,但不足以满足我的需要。

2 个答案:

答案 0 :(得分:1)

怎么样:

((?:\p{Sc}|[A-Z]{3})?\s*\d+(?:\.\d+)?\s*(?:\p{Sc}|[A-Z]{3})?)

答案 1 :(得分:1)

此正则表达式适用于PCRE正则表达式引擎(因为它使用 branch reset feature ):

(?|(\p{Sc}|USD|GBP) *(\d+(?:\.\d+)?)|(\d+(?:\.\d+)?) *(\p{Sc}|USD|GBP))

RegEx Demo

这会为您的输入数据生成以下MATCH信息:

MATCH 1
1. 10
2. $

MATCH 2
1. 10.01
2. $

MATCH 3
1. $
2. 10.012

MATCH 4
1. 61
2. USD

MATCH 5
1. £
2. 50.51

MATCH 6
1. 94
2. GBP