正则表达式以提取特定宪章之间的文本

时间:2019-07-20 07:55:28

标签: c# regex

我在下面输入了字符串

“日期为2018年7月1日的$ 500.00抵押(以下简称“抵押”),

,在输出中,我只想作为

$ 500.00

我尝试过以下正则表达式,但无法正常工作

Regex = new Regex(@"the amount of \$(.*)", RegexOptions.Singleline)

所以有人可以指导我我做错了什么事吗?

使用上面的正则表达式,我已经得到了输出为 500.00,日期为2019年7月1日

但是我只想要$ 500.00作为输出。

2 个答案:

答案 0 :(得分:1)

使用模式\$\d+(?:\.\d+)?并遍历所有匹配项:

cstring value = "Mortgage (\"Mortgage\") in the amount of $500.00, dated July 1, 2018 herewith";
MatchCollection matches = Regex.Matches(value, @"\$\d+(?:\.\d+)?");
foreach (Match match in matches)
{
    Console.WriteLine(match.Value);
}

答案 1 :(得分:0)

string str=@" Mortgage (""Mortgage"") in the amount of $500.00, dated July 1, 2019 herewith ";
Regex rg = new Regex(@"the amount of \$(.*), dated ", RegexOptions.Singleline);
//@"\$\d+(?:\.\d+)?"
var ans = rg.Match(str).Groups.Cast<Group>().Skip(1).Select(o => o.Value.Replace("\n", "").Trim());