说我有一个字符串,例如“ J1P3V9”。我也有诸如“ 0H44J4”之类的字符串。我只想检测遵循字母,数字,字母,数字,字母,数字的第一个模式的字符串。
什么是仅与这些实例匹配的正则表达式?
答案 0 :(得分:1)
答案 1 :(得分:0)
尝试以下正则表达式。
s <- c("J1P3V9", "0H44J4")
pattern <- paste(rep("[[:alpha:]][[:digit:]]", 3), collapse = "")
grep(pattern, s, value = TRUE)
#[1] "J1P3V9"
答案 2 :(得分:0)
您可以使用此正则表达式:
(?:[A-Z]\\d){3}
用法:
mystring <- c("J1P3V9", "0H44J4")
grepl("(?:[A-Z]\\d){3}", mystring)
# [1] TRUE FALSE
答案 3 :(得分:0)
您可以使用
\b(?:[a-zA-Z]\d){3}\b
R
中不受支持:
(?(DEFINE)
(?<letter>[a-zA-Z])
(?<number>\d)
)
\b(?:(?&letter)(?&number)){3}\b
\w
,它是[a-zA-z0-9_]
的捷径,很可能会比您想要的匹配更多。