代码之家  ›  专栏  ›  技术社区  ›  Mint_Sauce

正则表达式到一个特殊字符和一组字母

  •  1
  • Mint_Sauce  · 技术社区  · 7 年前

    使用正则表达式,我试图使用单个正则表达式命令从每个字符串中获取以下内容(星号表示我要提取的内容):

    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") 这是行不通的。我的也不是在寻找 : |

    1 回复  |  直到 7 年前
        1
  •  2
  •   Wiktor Stribiżew    7 年前

    您可以使用

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

    enter image description here

    细节 :

    • ^ -字符串的开头
    • (.*?) -捕获组#1,尽可能少地匹配任何0+字符
    • (?:-BI)? -BI 子字符串
    • (?:[ :]|$) -要么是一个空间, :