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

本文关键字:替换 结果 函数 文本 | 更新日期: 2023-09-27 17:57:48

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

"这里有些文本,这里有些文本#from_file[a.txt,2,N]和这里和这里"

#from_file[a.txt,2,N]宏应该从.txt中获得2个随机行,并用换行符连接它们另一个#from_file[a.txt,5,S]-取5个随机行并用空格连接

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

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

我的第一个想法是使用正则表达式,但也许还有其他解决方案可以解决我的问题?

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

听起来你想创建某种"通用"文本宏系统,虽然我相信这可以用regexp来完成,但你想要的基本上可以归结为你想要的功能,以及它的广泛性;它需要灵活。

你基本上需要定义你的语法和约束。文件名是否可以包含宏块终止符"}"?如果是这样,它需要逃跑吗?是否应支持转义?宏块中允许有空格吗?

基本上,找出你希望事情如何工作,最好是尽可能受约束,因为这意味着你可以实现一个更简单的解决方案,而且可能不需要一个完整的解析器和类似的东西。

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