【发布时间】:2018-01-14 19:06:35
【问题描述】:
我有一个如下所示的字符串:
<@399969178745962506> hello to <@!104729417217032192>
我有一本包含两者的字典,如下所示:
{"399969178745962506", "One"},
{"104729417217032192", "Two"}
我的目标是将<@399969178745962506> 替换为该数字键的值,在本例中为One
Regex.Replace(arg.Content, "(?<=<)(.*?)(?=>)", m => userDic.ContainsKey(m.Value) ? userDic[m.Value] : m.Value);
我当前的正则表达式如下:(?<=<)(.*?)(?=>) 仅匹配 < 和 > 之间的所有内容,在这种情况下将同时保留 @399969178745962506 和 @!104729417217032192
我不能只忽略@ 标志,因为! 标志并非每次都存在。所以最好只获取类似\d+的数字
我需要弄清楚如何仅获取 < 和 > 之间的数字,但我一生都无法弄清楚如何。
非常感谢您的帮助!
【问题讨论】: