是否可以仅使用PCRE替换添加`'s`或`'`(如果一个单词以`s`结尾)?

时间:2015-11-13 00:55:25

标签: regex pcre

免责声明:这是一项人为的任务,没有任何初始或潜在的问题。

有没有办法执行以下替换:

zerkms -> zerkms'
foo -> foo's

仅使用PCRE方言和replace操作(因为它在https://regex101.com/中表示,没有特定的语言扩展名)?

我个人认为这是不可能的,因为没有(?)方法在捕获匹配中放置任意(在原始字符串中不存在)常量子串。如果有可能 - 那么我会有一个解决方案。

我付出的努力:嗯,这里并不多,因为我没有找到任何方法在PCRE中执行条件替换。

PS:欢迎https://regex101.com/演示。

PPS:问题不是关于这样做(我知道我们都可以使用带有条件的编程语言),而是关于展示PCRE能力(或缺乏它)。

1 个答案:

答案 0 :(得分:5)

PCRE就是要发现。替换不是PCRE或正则表达式的一部分。

s/(s?)\b/$1?"s'":"'s"/eg;

(s?)\b是PCRE。其余部分是Perl实施的替代。

编辑:“不”。拼写:你不能使用PCRE进行条件替换,因为你不能首先使用PCRE进行替换