我有一个字段需要提取两个字符之间的文本。
我找到了函数
REGEXEXTRACT
并且我让它工作,只有当有一个字符时。但我无法让它与多个角色一起工作。
2020-02: Test Course (QAS)
我需要提取
:
之后和(
之前的文本。
所以它会返回
Test Course
一种方法是使用 INDEX() 和 SPLIT() 函数,如下所示:
=TRIM(INDEX(SPLIT(A2,":("),2)
Split 使用 : 和 ( 将文本分成 3 部分,然后 INDEX 选择第二部分。
TRIM() 只是去掉空格。
如果仅适用于一个单元格(例如 A2):
=IFERROR(TRIM(REGEXEXTRACT(A2,":([^\(]+)")))
无论冒号后面或左括号之前有空格,这都会返回您想要的内容。如果未找到匹配项,将返回 null。
如果要处理整个范围(例如 A2:A),请将以下内容放入其他空 Col B 的 B2 中:
=ArrayFormula(IF(A2:A="",,IFERROR(TRIM(REGEXEXTRACT(A2:A,":([^\(]+)")),A2:A)))
无论冒号后面或左括号之前有空格,这都会返回您想要的内容。如果没有找到匹配,则返回原始字符串。
在这两种情况下,REGEX 字符串...
:([^\(]+)
... 表示“一组任意数量的字符,这些字符不是左括号且位于冒号后面。”