只捕捉" abc-def-ghi"在字符串" utm_campaign = abc-def-ghi"

时间:2018-04-13 15:39:16

标签: r regex string

我是REGEX的新手。根据标题,我想在字符串abc-def-ghi中捕获utm_campaign=abc-def-ghi。该字符串通常嵌入在URL中。使用以下模式(utm_campaign=[a-zA-Z0-9_-]+)我可以匹配整个字符串,但我真的只想要字符串的第二部分,即abc-def-ghi。有没有一种有效的方法在正则表达式中执行此操作?这个问题的优选语言是R.

2 个答案:

答案 0 :(得分:3)

另一种选择:gsub

> string <- "utm_campaign=abc-def-ghi"
> gsub(".*=(\\w*)", "\\1", string)
[1] "abc-def-ghi"

答案 1 :(得分:2)

See regex in use here

(?<=utm_campaign=)[\w-]+
  • (?<=utm_campaign=)肯定的背后隐藏确保匹配utm_campaign=字面上的内容
  • [\w-]+匹配任何单词字符(a-zA-Z0-9_)或连字符一次或多次

See code in use here

x <- "utm_campaign=abc-def-ghi"
m <- regexpr("(?<=utm_campaign=)[\\w-]+", x, perl=TRUE)
regmatches(x, m)

结果:abc-def-ghi