我正在构建来自模板的文档引擎。在某些时候,我需要匹配 Reg Exp 组并将模板文本替换为数据库中的内容。
我最初对我的 RegExp 进行“硬编码”,执行如下操作:
Regex r = new Regex(@"{DocSectionToggle::(?<ColumnName>\w+)::(?<ResponseValue>.+)}\n\[\[(?<SectionContent>.+)\]\]", RegexOptions.Multiline);
道歉:它确实组捕获,所以语法不是最漂亮的。
只是为了让事情更整洁,并且因为我想'将模式保留在 web.config 或其他地方,我已经将算法'进化'为:
string _regexp_DocSectionToggle = @"{DocSectionToggle::{0}::{1}}\n\[\[{2}\]\]";
/* Reg Exp Patterns for group capture */
string _rxCol = @"(?<{ColumnName}>\w+)";
string _rxResp = @"(?<{ResponseValue}>.+)";
string _rxSectContent = @"(?<{SectionContent}>.+)";
Regex r = new Regex( string.Format(_regexp_DocSectionToggle,
_rxCol,
_rxResp,
_rxSectContent),
RegexOptions.Multiline
);
但我收到一个错误:“输入字符串的格式不正确”。
谁能告诉我为什么?这是一个限制string.Format(...)
吗?
感谢您的关注。