正则表达式最多为一个特殊字符和一组字母

Regex up to a special character and group of letters

使用 Regex,我尝试使用单个 Regex 命令从每个字符串中取回以下内容(星号表示我想要提取的内容):

FO4H56FD-BTU (Follow Home 56): PLTD8

\***********

FO4H56FD-SYH-BI (Follow Home 56 SYH): PLTD8

\***********

FO4H52FD-SZH-AG4R-BI (Follow Home 52 SAH): QQTD8

\****************

FO4H58FD-SGH: (Follow Home 58 TGT): PLTS8

\***********

出于某种原因,我遇到了很多困难。我一直在使用各种方法,目前有 =REGEXEXTRACT(A43,"(FO.+)\-BI") 不起作用。我的目前也没有在寻找 :。我对多个规则使用了 |,但似乎没有成功。

您可以使用

=REGEXEXTRACT(A43,"^(.*?)(?:-BI)?(?:[ :]|$)")

详情:

  • ^ - 字符串开头
  • (.*?) - 尽可能少地捕获组 #1 匹配任何 0+ 个字符
  • (?:-BI)? - 可选的非捕获组匹配 -BI 子字符串
  • 的 1 次或 0 次出现
  • (?:[ :]|$) - space、: 或字符串结尾