簡體   English   中英

正則表達式在R中查找具有特定模式的字符串

[英]regular expression find strings with certain pattern in R

我在這里有一些字符串,它們是:

12ABC3, 2ABC45, ABC 56, uhyABC, REGEXP ...

目標是只要字符串中有'ABC'(不是'BCA'或'BAC'),當使用'grepl'時它應該返回TRUE

所以輸出應該是

TRUE, TRUE, TRUE, TRUE, FALSE

任何人都可以幫我嗎?

提前致謝

你想在grepl的調用中使用fixed = TRUE

> x <- c("12ABC3", "2ABC45", "ABC 56", "uhyABC", "REGEXP", "BCA", "CAB")
> grepl("ABC", x, fixed = TRUE)
# [1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE

fixed參數定義是

邏輯。 如果為TRUE,則pattern是要按原樣匹配的字符串。 覆蓋所有沖突的參數。

您可以使用以下內容。

> x <- c('12ABC3', '2ABC45', 'ABC 56', 'uhyABC', 'REGEXP')
> grepl('ABC', x, fixed=T)
# [1]  TRUE  TRUE  TRUE  TRUE FALSE
> x[grepl('ABC', x, fixed=T)]
# [1] "12ABC3" "2ABC45" "ABC 56" "uhyABC"

這個表達怎么樣: \\w*ABC[\\w\\s]*

在線演示

\\w*匹配任何單詞字符[a-zA-Z0-9_] *將使其匹配從0到無限次。

\\w\\s]*匹配任何單詞字符[a-zA-Z0-9_ ]這個包含你[a-zA-Z0-9_ ]表達式中的空格,並且*將使它從0到無限次匹配。

暫無
暫無

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

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