簡體   English   中英

R 正則表達式 / grep / grepl 用於字母后跟破折號和數字

[英]R regex / grep / grepl for letters followed by a dash and numbers

我正在嘗試找到正確的 grep 表示法來識別具有這種模式的字符串:任意數量的字母后跟破折號 (-),后跟任意數量的數字。 例如, ABC-123適合,而123-ABCA1-B2則不適合。

我試過grepl('[[A:Za:z]]\\-[[0:9]]','ABC-123')但沒有得到正確的結果。

有什么建議么?

我們可以將范圍 ( : ) 更改為-而不是[[ 在模式中,我們還分別為字符串的開始和結束指定了^$ 字母和數字的+指定一個或多個...

grepl("^[A-Za-z]+-[0-9]+$", str1)
#[1]  TRUE FALSE FALSE

或者,如果我們想使用[[

grepl("^[[:alpha:]]+-\\d+$", str1)
#[1]  TRUE FALSE FALSE

數據

str1 <- c("ABC-123", "123-ABC", "A1-B2")

暫無
暫無

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

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