正则表达式中的先行
Lookahead in regular expression
我正在尝试使用正则表达式来提取字符串中第一个“/”出现之前的部分。在下面的例子中,初始字符串是 "Atomic grouping / possessive qualifiers / conditional and recursive patterns" 我想得到 "Atomic grouping"
library(stringr)
var.descr <- "Atomic grouping / possessive qualifiers / conditional and recursive patterns"
我尝试了以下但它匹配字符串直到 last
" / " 出现(它 returns "Atomic grouping / possessive qualifiers")
str_extract(var.descr, perl("^.+(?=\s/)"))
如有任何帮助,我们将不胜感激。
您可以像这样使用前瞻性正则表达式:
str_extract(var.descr, perl("^.+?(?= / |$)"))
(?= / |$)
将确保 /
后跟匹配的文本或匹配到输入结束。
您可以使用 "lazy" +
和后面的 ?
str_extract(var.descr, perl("^[^/]+"))
我正在尝试使用正则表达式来提取字符串中第一个“/”出现之前的部分。在下面的例子中,初始字符串是 "Atomic grouping / possessive qualifiers / conditional and recursive patterns" 我想得到 "Atomic grouping"
library(stringr)
var.descr <- "Atomic grouping / possessive qualifiers / conditional and recursive patterns"
我尝试了以下但它匹配字符串直到 last
" / " 出现(它 returns "Atomic grouping / possessive qualifiers")
str_extract(var.descr, perl("^.+(?=\s/)"))
如有任何帮助,我们将不胜感激。
您可以像这样使用前瞻性正则表达式:
str_extract(var.descr, perl("^.+?(?= / |$)"))
(?= / |$)
将确保 /
后跟匹配的文本或匹配到输入结束。
您可以使用 "lazy" +
和后面的 ?
str_extract(var.descr, perl("^[^/]+"))