我正在使用一個非常廣泛的公式從字串中洗掉所有以小寫字母開頭并包含許多特殊字符和其他符號和符號的單詞。目標是僅以大寫字母開頭的單詞結束(如果兩個單詞以大寫字母開頭,則它們被計為一個單詞)。例如
這是輸入
奧巴馬媽媽告訴記者: 19. 華盛頓郵報在那個他和內塔尼亞胡-lll 反對伊朗呼吁“美國去死”。
這是預期的輸出
奧巴馬媽媽, 記者, 華盛頓郵報, 那, 內塔尼亞胡, 伊朗人, 美國之死
這就是公式
=Regexreplace(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(INDEX(TEXTJOIN(" "; 1; LAMBDA(x;IF(REGEXMATCH(x&"";"(^[0-9a-z?ü?])");"_";x))(SPLIT(G7;" "&CHAR(10)))));"(.*)\/|\|.*|\(.*\) |\.|?| - .*$| – |!|\?|\ |\?|\“|%| \& | \& |'|?|?|""";"");"(:| --)";" _");"(^[_\s] |[\s_] $)";"");"\s_ ";",");"([,] |,\s)";",")
這也很有效。我只是想知道是否沒有一種更簡單的方法可以提取所有大寫字母的單詞。
是否有多重 REGEXEXTRACT 之類的東西?這個只是提取第一個詞:
=regexextract(G7;"\b[A-Z].*?\b")
uj5u.com熱心網友回復:
完全匹配您的輸出,我可以將其縮減為三個正則運算式。嘗試這個:
=regexreplace(regexreplace(regexreplace(G7,"[^A-Za-z\'\-\ ""]",""),"\ [a-z\ ] \ ",", "),"[\'""]","")
如果您需要在單獨的單元格中輸出,請在正則運算式周圍使用 SPLIT() 。

uj5u.com熱心網友回復:
我想知道是否只有一個可能,REGEXREPLACE但我對此表示懷疑。另一個有兩個替換的想法:
=REGEXREPLACE(REGEXREPLACE(A1;
"[^A-Z??ü]*((?:\s*[A-Z??ü][a-z??ü?'-]*) )[^A-Z??ü]*";"$1,");"[ ,] $";"")


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/524630.html
上一篇:如何將1到13/任何非空白單元格組連接到相鄰列跳過GoogleSheets公式中的中間空白單元格?
下一篇:使用基于搜索的值填充列
