我有这个模板:
Dear @Model["ClientName"] <br><br>
Thank you for applying to open an account. Your request for a (@Model["AccountType"]/@Model["Platform"]/@Model["Currency"]) has been sent to our Client team. They are currently reviewing your request.<br><br>
Kind regards,<br>
<a href="mailto:test@example.com">test@example.com</a><br />
+55 00 0000 0000 <br>08:00-18:00 Mon-Fri
并希望用字符串值替换所有@Model["key"]
。
我有这个正则表达式:
const string pattern = @".*(?<model>@Model\[\u0022(?<key>\w+)\u0022\]).*";
var matches = Regex.Matches(input, pattern, RegexOptions.IgnoreCase);
当我检查匹配集合时,我只找到2,ClientName和Currency。
为什么?我也希望找到AccountType和Platform。
你能帮我辨别出什么问题吗?
答案 0 :(得分:0)
尝试此匹配模式(之前和之后没有.*
):
const string pattern = @"(?<model>@Model\[\u0022(?<key>\w+)\u0022\])";
这会阻止.*
贪图吞下整条线,并将其视为一场比赛。