gpt4 book ai didi

regex - R-regex:匹配不是以模式开头的字符串

转载 作者:行者123 更新时间:2023-12-03 14:42:33 24 4
gpt4 key购买 nike

我想使用正则表达式来查看字符串是否不以某种特定模式开头。虽然我可以使用:[^将某些字符列入黑名单,但我不知道如何将模式黑名单。

> grepl("^[^abc].+$", "foo")
[1] TRUE
> grepl("^[^abc].+$", "afoo")
[1] FALSE


我想做类似 grepl("^[^(abc)].+$", "afoo")的操作并获取 TRUE,即如果字符串不是以 abc序列开头的则匹配。

请注意,我知道 this post,并且我也尝试使用 perl = TRUE,但没有成功:

> grepl("^((?!hede).)*$", "hede", perl = TRUE)
[1] FALSE
> grepl("^((?!hede).)*$", "foohede", perl = TRUE)
[1] FALSE


有任何想法吗?

最佳答案

是的将零宽度前行/外/其他括号。那应该给你这个:

> grepl("^(?!hede).*$", "hede", perl = TRUE)
[1] FALSE
> grepl("^(?!hede).*$", "foohede", perl = TRUE)
[1] TRUE


我想这就是你想要的。

或者,如果要捕获整个字符串,则 ^(?!hede)(.*)$^((?!hede).*)$都是等效的并且可以接受。

关于regex - R-regex:匹配不是以模式开头的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8438173/

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