是这样,工作闲余时编写了一个例子,意图是将一大段文字中所有开头的数值加10后再替换回原位置。
程序已经解决了,按照自己期望的方式,不过实话说自己对内部执行略不清晰。
按照我之前对于%nrstr的理解,第一句prxparse应该是这么编译的:
首先%nrstr使得%eval在所在函数中延迟执行,此时prxparse先行编译,将 \1 还原成缓冲区抓取的数值
其次%nrstr再将结果加和,直到prxchange实施。
总结一下应该是这么个模式:
1. 抓取缓冲区 2. 缓冲区值释放 3. %eval更新整个正则表达式值 4. prxparse编译储存
不知这样理解对吗?