我使用regex-applicative库。
我想删除后缀“.end”,但只有当它真的是一个后缀(字符串的尾部,而不是字符串中间的某个地方),并使用replace。
replace (some anySym <* ".end") "start.end"
它的工作原理是:“start.end”-〉“start”
但它不工作与“开始。结束。额外”-〉“开始。额外”(我希望“开始。结束。额外”的结果,因为“结束”不是一个后缀更多-它的中间)。
我试过:
replace (some anySym <* ".end" *> empty) "start.end"
replace (empty <* some anySym <* ".end" *> empty) "start.end"
和很多其他的组合,但它并不像我期望的那样工作。有没有可能用这个库删除一个后缀?
1条答案
按热度按时间lx0bsm1f1#
replace
用于查找字符串中RE匹配的所有位置,并将其替换为其他内容。您不希望这样,所以不要使用replace
。您有一个正则表达式定义了整个字符串的形状,因此match
在该正则表达式上从匹配中获取信息: