Регулярное выражение, чтобы найти деньги в тексте - PullRequest
0 голосов
/ 29 января 2019

Мне нужно найти регулярное выражение, которое будет извлекать любой текст, за которым следует $, или 50, или 50, или 5000, или 5000 долларов из текста.Спасибо

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Я думаю, что это сработает:

^\$(([0-9]*)|([0-9]{1,3}(\,[0-9]{3})*))(\.[0-9]{2})?$

Если вы используете https://regex101.com/,, вы сможете получить довольно приличное объяснение этого.По сути, мы начинаем со знака доллара ($) и проверяем либо целое число, разделенное запятыми, либо целое число, не разделенное запятыми, а затем необязательную десятичную часть.

0 голосов
/ 29 января 2019

Вы можете попробовать поискать выражения регулярных выражений о конкретных вещах, таких как деньги, на сайте, подобном this .

Лично мне нравится регулярное выражение

new Regex(@"^\-?\(?\$?\s*\-?\s*\(?(((\d{1,3}((\,\d{3})*|\d*))?(\.\d{1,4})?)|((\d{1,3}((\,\d{3})*|\d*))(\.\d{0,4})?))\)?$");

, котороепокроет их: 0, 0, (0,0000), .1, .01, .0001, $ .1, $ .01, $ .0001, ($ .1), ($ .01), $ (. 0001), 0,1, 0,01, 0,0001, 1, 1111, 1111, 1, 1,00, 1 000,00, 1, 1, 1,00, 1 000,00, 1,0000, 1,0000, 1 000,00, -1, -1,00, -1 000,00, - 1 доллар, -1,00 долл. США, - 1 000,00 долл. США, - 1 долл. США, - 1,00 долл. США, - 1 000,00 долл. США, -1 долл. США, -1,00 долл. США, 1 000,00 долл. США, 1 долл. США, 1,00 долл. США, 1 000,00 долл. США, 1 долл. США,(1,00), (1 000,00), (1), (1,00) (1 000,00)

...