【发布时间】:2013-10-14 21:41:21
【问题描述】:
我有一个想要注销的 XML 字符串。这个 XML 包含一些我想在发送到日志文件之前屏蔽掉的敏感数据。目前使用 std::regex 来做到这一点:
std::regex reg("<SensitiveData>(\\d*)</SensitiveData>");
return std::regex_replace(xml, reg, "<SensitiveData>......</SensitiveData>");
目前数据正被正好 6 个 '.' 替换。字符,但是我真正想做的是用正确的点数替换敏感数据。 IE。我想获取捕获组的长度并将确切的点数记下来。
这个可以吗?
【问题讨论】:
-
当然you must be trolling...
-
单标签匹配,没有嵌套标签,是常规的。
-
用精确的点数替换敏感数据将揭示有关敏感数据的信息。我会重新考虑你的问题。
-
那么点数不就代表敏感信息吗?对于这个问题,如果 lang 不支持回调,请坐在 find while 循环中并重写字符串
[\S\s]*<SensitiveData>(\\d*)</SensitiveData> -
这个更好
([\S\s]*)<SensitiveData>(\\d*)</SensitiveData>
标签: c++ regex c++11 capture-group