我需要介绍一些文本宏,例如:
“这里有一些文字,这里有一些文字#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}
我的第一个想法是使用正则表达式 - 但是对于我的问题可能存在另一种解决方案?
答案 0 :(得分:0)
听起来你想要创建某种“通用”文本宏系统,虽然我确信这可以用正则表达式完成,但你想要的基本上归结为你想要的能力,以及如何广泛和它需要灵活。
您基本上需要定义语法和约束。文件名可以包含宏块终止符 - 字符'}'吗?如果是这样,是否需要进行转义?是否应该支持转义?是否允许宏块内的空格?
基本上了解你希望事情如何发挥作用,最好是尽可能地限制,因为这意味着你可以实现一个更简单的解决方案,而且可能不需要一个完整的解析器和类似的解决方案。
也许基于正则表达式的解决方案足够(尽管肯定不是很好)。但在你说出来之前,你需要更好地规范;)