(?<currency>[£$€])(?<value>[0-9]{1,3}(?:,[0-9]{3})*\.[0-9]{2})\s\(inc\.\sVAT\)
Я бы использовал что-нибудь подобное.Я добавил первую группу захвата с валютой, так как подумал, что это тоже может быть полезно?Вам просто нужно добавить, какие символы валюты вас интересуют в квадратных скобках.
В Visual Studio вы:
var regex = new Regex(@"(?<currency>[£$€])(?<value>[0-9]{1,3}(?:,[0-9]{3})*\.[0-9]{2})\s\(inc\.\sVAT\)");
Затем вы делаете регулярное выражение (данные) или регулярное выражение (данные) или все, что вам нужно сделать.
Затем, чтобы получить доступ к номеру в вашем совпадении, вам нужно получить доступ к группе значений, чтобы ... match.Groups["value"].Value
, где совпадение - это то, что вы назначили своим совпадением с регулярным выражением.
Просто длябыстро пробежаться по регулярному выражению:
(?<currency>[£$€])
это именованная группа захвата, которая будет захватывать £
или $
или €
буквально.
(?<value>[0-9]{1,3}(?:,[0-9]{3})*\.[0-9]{2})
Это называется захватомгруппа, чтобы получить номер.Далее разбиваем:
[0-9]{1,3}
соответствует цифре от 0 до 9 от 1 до 3 (включительно) раз.
(?:,[0-9]{3})*
соответствует тысячам, разделенным запятыми 0 или более раз.
\.[0-9]{2}
соответствует десятичной запятой и двум цифрам после.
\s\(inc\.\sVAT\)
Это соответствует буквально бит НДС после номера.Используя \s
вместо
в качестве пробела, потому что мне легче читать.
ПРИМЕЧАНИЕ: это регулярное выражение работает только для этого числового формата с запятой для каждой тысячи и всегда включает десятичное число.