正则表达式解析谷歌表格中单元格中的单词
REGEX to parse words from cell in googlesheets
希望有人能帮助我语法。
单元格 A1
包含以下值:
Content Type: Pitch Decks; Region: North America; Content Type: Data Sheet;
我正在尝试创建一个公式来解析单词 "Content Type: "
和后面的分号之间的值。
所以在B1
中,公式的预期结果应该是:
Pitch Decks
Data Sheet
(是的,用 char(10)
分隔 B1
中的值)
我尝试了多种不同的 REGEXEXTRACT
组合,例如:
REGEXEXTRACT(A11,"Content Type: ([\w\/\s]*);?")
..仅 returns:
Pitch Decks
我了解到 Google 表格不支持全局修饰符。当我在正则表达式测试工具中添加全局修饰符时,该公式有效,但在 Google 表格本身中使用时无效。
我认为通过替换和 Lookahead 这会很容易,但事实证明 Google Sheets 也不支持 Lookaheads。经过一番研究,我想出了以下解决方案:
=join(CHAR(10),REGEXEXTRACT(A1,REGEXREPLACE(A1,"(Content Type: )([^;]+)","()")))
这将查找“Content Type:”之后直到下一个分号或字符串末尾的所有字符串。然后,它将使用 LineFeed 加入它们。如果您想使用不同的字符加入,您可以将 CHAR(10)
替换为 ","
,例如,用逗号加入。
输出:
Pitch Decks
Data Sheet
尝试:
=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(TRIM(FLATTEN(QUERY(TRANSPOSE(SUBSTITUTE(
IF(IFERROR(REGEXMATCH(SPLIT(A1:A, ";"), "Content Type")),
REGEXEXTRACT(SPLIT(A1:A, ";"), ": (.+)"), ), " ", "♥"))
,,9^9))), " ", CHAR(10)), "♥", " "))
希望有人能帮助我语法。
单元格 A1
包含以下值:
Content Type: Pitch Decks; Region: North America; Content Type: Data Sheet;
我正在尝试创建一个公式来解析单词 "Content Type: "
和后面的分号之间的值。
所以在B1
中,公式的预期结果应该是:
Pitch Decks
Data Sheet
(是的,用 char(10)
分隔 B1
中的值)
我尝试了多种不同的 REGEXEXTRACT
组合,例如:
REGEXEXTRACT(A11,"Content Type: ([\w\/\s]*);?")
..仅 returns:
Pitch Decks
我了解到 Google 表格不支持全局修饰符。当我在正则表达式测试工具中添加全局修饰符时,该公式有效,但在 Google 表格本身中使用时无效。
我认为通过替换和 Lookahead 这会很容易,但事实证明 Google Sheets 也不支持 Lookaheads。经过一番研究,我想出了以下解决方案:
=join(CHAR(10),REGEXEXTRACT(A1,REGEXREPLACE(A1,"(Content Type: )([^;]+)","()")))
这将查找“Content Type:”之后直到下一个分号或字符串末尾的所有字符串。然后,它将使用 LineFeed 加入它们。如果您想使用不同的字符加入,您可以将 CHAR(10)
替换为 ","
,例如,用逗号加入。
输出:
Pitch Decks
Data Sheet
尝试:
=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(TRIM(FLATTEN(QUERY(TRANSPOSE(SUBSTITUTE(
IF(IFERROR(REGEXMATCH(SPLIT(A1:A, ";"), "Content Type")),
REGEXEXTRACT(SPLIT(A1:A, ";"), ": (.+)"), ), " ", "♥"))
,,9^9))), " ", CHAR(10)), "♥", " "))