gpt4 book ai didi

regex - 在 R 中使用负前瞻的意外行为

转载 作者:行者123 更新时间:2023-12-02 06:56:43 25 4
gpt4 key购买 nike

小问题:谁能告诉我为什么

grepl('p(?!q)', 'pq', perl = TRUE)

FALSE

但是

grepl('p(?!p)', 'pp', perl = TRUE)

TRUE吗?

不应该应用完全相同的逻辑吗?我如何使用否定前瞻来匹配包含“p”但后面没有跟另一个“p”的字符串?

最佳答案

grepl('p(?!q)', 'pq', perl = TRUE)

这里有一个p,所以它只检查那个p。检查单个 p 后面是否没有 q。但它失败了,因为 p 后跟 q。由于未找到匹配项,因此返回 FALSE

grepl('p(?!p)', 'pp', perl = TRUE)

这里它检查第一个 p。它失败了,因为第一个 p 后面跟着另一个 p。但是当它检查第二个 p 时,条件变为真,因为第二个 p 后面没有跟 p。因为它至少找到一个匹配项,所以返回 TRUE

关于regex - 在 R 中使用负前瞻的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com