文本宏 - 用函数结果替换它们

时间:2011-05-25 09:10:11

标签: c# regex

我需要介绍一些文本宏,例如:

  

“这里有一些文字,这里有一些文字#from_file [a.txt,2,N],这里和这里”

#from_file [a.txt,2,N]宏应该从a.txt获得2个随机行并用新行字符连接另一个#from_file [a.txt,5,S] - 取5条随机行加入空间

我当然需要另外一些宏:#random [0-9] - 随机数,#random [A-B,5] - 5个字符的随机字符串

宏可以是其他格式等:{from_file:a.txt,2,N}

我的第一个想法是使用正则表达式 - 但是对于我的问题可能存在另一种解决方案?

1 个答案:

答案 0 :(得分:0)

听起来你想要创建某种“通用”文本宏系统,虽然我确信这可以用正则表达式完成,但你想要的基本上归结为你想要的能力,以及如何广泛和它需要灵活。

您基本上需要定义语法和约束。文件名可以包含宏块终止符 - 字符'}'吗?如果是这样,是否需要进行转义?是否应该支持转义?是否允许宏块内的空格?

基本上了解你希望事情如何发挥作用,最好是尽可能地限制,因为这意味着你可以实现一个更简单的解决方案,而且可能不需要一个完整的解析器和类似的解决方案。

也许基于正则表达式的解决方案足够(尽管肯定不是很好)。但在你说出来之前,你需要更好地规范;)