使用谷歌RE2 https://github.com/google/re2/blob/master/doc/syntax.txt提取多个值(如果存在)在谷歌电子表格单元格
从几行像
- 我爱摇滚
- 我爱摇滚和剪刀
- 我讨厌纸
- 我喜欢摇滚,纸和剪刀
- 我很想自己
我想提取“摇滚”,“纸”,并从每行的“剪刀差”。我想要正则表达式匹配所有上面的五行,并给我发现一些东西的Rock,Paper和Scissors。我主要在Google床单中使用这个功能,但任何Google re2正则表达式都有帮助。
我已经试过....
".*(([Rock]{0,4})).*"
".*(([Rock]{4})|([Rock]{0})).*"
=REGEXEXTRACT(A2,".*(Rock{0,2}).*(paper{0,2}).*(scissors{0,2}).*")
和其他多种组合可供任何线得到摇滚,如果存在的话......但是,这总是喜欢零而不是四个......即使它找到Rock,它也会返回空字符串。如果我用{1}替换{0},即使找到完整的Rock,我也会得到“k”。
任何想法?
'[摇滚] {0,4}'匹配字符类中的空字符或1到4个字符。 – Toto
@Toto,是的。如果找不到Rock,它应该给我空,这样我就不会出错 - >整个正则表达式与字符串不匹配。因此,它可能会继续在给定的字符串中搜索纸张。主要问题是优先。它应该优先考虑4个字符而不是零。 –
由于贪婪的'。*'周围。如果你想在一个字符串中匹配'Rock',只需使用'\ bRock \ b'。 – Toto