模拟无限猴子问题时str_detect匹配字符串返回FALSE问题求助
问题根本原因
你构造monkey字符串时使用了collapse = " "参数,会在每两个随机字母之间插入一个空格作为分隔符。你肉眼看到的「Y和W相邻」实际存储的字符序列是Y+空格+W,不存在连续无间隔的YW子串,因此str_detect(monkey, "YW")返回FALSE属于正常结果。
解决方法
- 方案1:适配现有带空格的字符串格式,修改匹配规则,匹配中间带空格的Y、W组合:
str_detect(monkey, "Y W") - 方案2:修改字符串生成逻辑,生成无间隔的连续字母串,后续直接匹配
"YW"即可生效:
将原有生成代码改为monkey=paste(sample(LETTERS, 10, replace = TRUE), collapse = "") - 方案3:不改动原有生成和匹配逻辑,匹配前先移除字符串内所有空格:
str_detect(str_remove_all(monkey, "\\s"), "YW")
内容的提问来源于stack exchange,提问作者Uriel Herrera
相关产品推荐
相关产品推荐

