我正在尝试解析字符串中的标记。
我想要的是这样的输入:
string input = "asdf %(text) %(123) %(a\)a) asdf";
我可以通过 regex.Replace() 运行它并将其替换为“%(text)”、“%(123)”和“%(a\)a)”。
也就是说,它将匹配开始“%(”和结束“)”之间的所有内容,除非结束“)”被转义。(但当然,你可以用另一个斜线来逃避斜线,这将防止它逃避结束括号......)
我很确定标准正则表达式不能做到这一点,但我想知道 C# 正则表达式库的各种花哨的扩展功能是否可以,而不是完全手动遍历字符串?或者其他一些可以做到这一点的方法?我觉得这是一个足够普遍的程序,鉴于 .net 框架的庞大性,必须有某种方法来解决它,而无需从头开始实施解决方案?如果我必须实现遍历字符串并用 string.Replace() 替换,我会的,但它看起来太不优雅了。