在不考虑子字符串的一部分的情况下检测字符串中的子字符串
Detect substring within a string while not considering part of the substring
我正在尝试检查字符串 B 是否包含在字符串 A 中,这是我尝试过的:
library(stringr)
string_a <- "something else free/1a2b a bird yes"
string_b <- "free/xxxx a bird"
str_detect(string_a, string_b)
我希望匹配 (TRUE),因为我不想考虑 string_b 后跟“/”和白色 space 之前的部分,这就是为什么我把“ /xxxx".
在某种程度上,“/xxxx”应该表示匹配这些地方可能出现的任何字符串或数字。像这样匹配时,是否有另一种符号可以忽略部分字符串?
是的,在正则表达式中,您可以使用 .*
来匹配零个或多个字符。
library(stringr)
string_a <- "something else free/1a2b a bird yes"
string_b <- "free/xxxx a bird"
string_c <- "free/.*a bird"
str_detect(string_a, string_c)
#[1] TRUE
如果您无法在源代码中更改 string_b
,您可以使用 str_replace_all
或 gsub
将 xxxx
替换为 '.*'
。
str_detect(string_a, str_replace_all(string_b, 'x+', '.*'))
#[1] TRUE
我正在尝试检查字符串 B 是否包含在字符串 A 中,这是我尝试过的:
library(stringr)
string_a <- "something else free/1a2b a bird yes"
string_b <- "free/xxxx a bird"
str_detect(string_a, string_b)
我希望匹配 (TRUE),因为我不想考虑 string_b 后跟“/”和白色 space 之前的部分,这就是为什么我把“ /xxxx".
在某种程度上,“/xxxx”应该表示匹配这些地方可能出现的任何字符串或数字。像这样匹配时,是否有另一种符号可以忽略部分字符串?
是的,在正则表达式中,您可以使用 .*
来匹配零个或多个字符。
library(stringr)
string_a <- "something else free/1a2b a bird yes"
string_b <- "free/xxxx a bird"
string_c <- "free/.*a bird"
str_detect(string_a, string_c)
#[1] TRUE
如果您无法在源代码中更改 string_b
,您可以使用 str_replace_all
或 gsub
将 xxxx
替换为 '.*'
。
str_detect(string_a, str_replace_all(string_b, 'x+', '.*'))
#[1] TRUE