正则表达式最多为一个特殊字符和一组字母
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、:
或字符串结尾
使用 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、:
或字符串结尾