簡體   English   中英

量詞{n,m}前一項至少匹配n次,但不超過m次,在R中不起作用

[英]Quantifier {n,m} The preceding item is matched at least n times, but not more than m times not working in R

我的代碼是

strings <- c("a","aa","aaa", "aaaa-EA","aaaaaa-EA")
pattern = "a{2,4}-EA$"
grepl(pattern,strings,perl=TRUE)

輸出為: FALSE FALSE FALSE TRUE TRUE是是

理想情況下,我應該得到FALSE FALSE FALSE TRUE FALSE

您需要添加^以指示字符串的開頭:

> pattern <- "^a{2,4}-EA$"
> grepl(pattern, strings)
[1] FALSE FALSE FALSE  TRUE FALSE

否則,模式匹配與位置無關。

正如Sven指出的那樣,帶有5 a的字符串具有一個帶有4 a的子字符串,當您不指定字符串的開頭時,該子字符串可以匹配。

或者,您可以在斷言后面使用否定性外觀,以確保最多僅匹配4個:

grepl("(?<!a)a{2,4}-EA$",strings,perl=TRUE)
[1] FALSE FALSE FALSE  TRUE FALSE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM