#replace #regex #index #template #syntax #literals

sewer-replacement

正则表达式替换语法

1 个不稳定版本

0.1.0 2022年5月3日

#501模板引擎


sewer 中使用

MIT 许可证

7KB
146

sewer-replacement

简单的逆正则表达式风格的模板语言,用于替换

在替换中提供几个模式

模式 插入
$$ 文本字面量 "$"
$n,其中 n - 数字 索引匹配,即 str.replace("aaa(bbb)", "$1aaa") == "bbbaaa"。零索引保留用于完全匹配。如果指定的分组不存在,则抛出错误,请参阅下文错误处理
$<name>,其中 name - 字符串 命名匹配,即 str.replace("aaa(?P<name>bbb)", "$<name>aaa") == "bbbaaa"。如果指定的分组不存在,则抛出错误
\\ 文本字面量 "\"
\ 文本字面量 " "
\xnn,其中 n - 十六进制数字 插入具有十六进制代码 0xnn 的文本字节
(expr1|expr2|expr3...),其中 expr - 替换表达式 尝试执行 expr1,如果抛出错误(见上文) - 则尝试下一个表达式,如果没有匹配到任何表达式 - 抛出错误

表达式可以以 (?x) 开头,这使得解析器忽略空白字符,并允许编写注释

(?x)
$<group1> # Insert group 1
==
$<group2> # Insert group 2

依赖项

~0.3–0.8MB
~18K SLoC