我正在尝试将非捕获组与str_extract
函数从stringr
包裹。这是一个例子:
library(stringr)
txt <- "foo"
str_extract(txt,"(?:f)(o+)")
这返回
"foo"
虽然我希望它只会返回
"oo"
就像在这篇文章中一样:https://stackoverflow.com/a/14244553/3750030 https://stackoverflow.com/a/14244553/3750030
在使用 R 进行匹配时,如何使用 R 中的非捕获组从返回值中删除组的内容?
当您使用正则表达式时(?:f)(o+)
这不会Capture但它肯定会匹配。
捕获的意思是存储在内存中用于反向引用,以便它可以用于同一字符串中的重复匹配或替换captured string.
就像在这篇文章中一样:https://stackoverflow.com/a/14244553/3750030 https://stackoverflow.com/a/14244553/3750030
你误解了这个答案。非捕获型团体并不意味着不匹配。它被捕获在$1
(组 1)因为它之前没有组。
如果您愿意Only匹配假设B其次是A那么你应该使用positive lookbehind
像这样。
Regex: (?<=f)(o+)
解释:
Regex101 演示 https://regex101.com/r/vQ8nZ3/1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)