You could try a pattern like this:
^([£€$]([0-9]([0-9,])*)(\.\d{2})?|([0-9]([0-9,]))(\.\d{2})?([pcm]|bn| [mb]illion))$
This will match either:
- A
£
,€
, or$
followed by a number which may contain commas, followed by an optional.
followed by two more digits. - A number which may contain commas, followed by an optional
.
followed by two more digits, followed byp
,c
,m
,bn
, or a space, followed bymillion
orbillion
.
Here's a demonstration