使用谷歌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