需要在 Google Sheet 中使用 REGEXEXTRACT() 在字符串之间提取字符串
Need to extract String in between strings using REGEXEXTRACT() in Google Sheet
我有一个像这样的字符串:"abcd abcd | abcde | Degree SP | xyz abcd | abcd ABC"
我需要使用正则表达式提取 "Degree SP"
。我怎样才能做到这一点?这里的条件是:
- 字符串以“SP”结尾
- 字符串在最后一个“|”之后开始。
我正在尝试 Google Sheet 公式 REGEXEXTRACT(<input string>, "[\|\s].+SR[\s\|]")
它returns" | abcde | Degree SP "
。如何限制从最后一个 "|"?
中提取
使用您显示的示例,请尝试使用正则表达式。
^.*?\s+\S+\s+\|\s+\S+\s+\|\s+([^\|]*)\s+\|.*$
OR 您想要捕获以 SP
结尾的 |
的第 2 次和第 3 次出现之间的值字符串然后尝试以下正则表达式:
^.*?\s+\S+\s+\|\s+\S+\s+\|\s+([^\|]*SP)\s+\|.*$
说明: 为以上添加详细说明。
^.*?\s+\S+\s+ ##Matching from starting of value with a lazy match till 1st occurrence of spaces followed by 1 or more non-spaces followed by 1 or more spaces.
\|\s+\S+\s+\| ##Matching |(literal) followed by spaces followed by 1 or more non-spaces followed by spaces with |(literal character) here.
\s+ ##Matching 1 or more spaces occurrences here.
([^\|]*) ##Creating 1 and only capturing group which has everything till next occurrence of | to get Degree SP value mentioned by OP in samples.
\s+\|.*$ ##Matching 1 or spaces followed by | till last of value/line.
如果字符串 Degree SP
应该在管道和 space 之间:
\|\s([^\s|][^|]*SP)\s\|
\|\s
匹配 |
和一个 whitespace char
(
捕获 组 1
[^\s|]
匹配 space 或 |
以外的单个字符
[^|]*SP
匹配 |
以外的可选字符并匹配 SP
)
关闭组 1
\s\|
匹配白色 space 字符和 |
如果只有Degree SP
后的管道是必须的:
([^\s|][^|]*SP)\s*\|
我有一个像这样的字符串:"abcd abcd | abcde | Degree SP | xyz abcd | abcd ABC"
我需要使用正则表达式提取 "Degree SP"
。我怎样才能做到这一点?这里的条件是:
- 字符串以“SP”结尾
- 字符串在最后一个“|”之后开始。
我正在尝试 Google Sheet 公式 REGEXEXTRACT(<input string>, "[\|\s].+SR[\s\|]")
它returns" | abcde | Degree SP "
。如何限制从最后一个 "|"?
使用您显示的示例,请尝试使用正则表达式。
^.*?\s+\S+\s+\|\s+\S+\s+\|\s+([^\|]*)\s+\|.*$
OR 您想要捕获以 SP
结尾的 |
的第 2 次和第 3 次出现之间的值字符串然后尝试以下正则表达式:
^.*?\s+\S+\s+\|\s+\S+\s+\|\s+([^\|]*SP)\s+\|.*$
说明: 为以上添加详细说明。
^.*?\s+\S+\s+ ##Matching from starting of value with a lazy match till 1st occurrence of spaces followed by 1 or more non-spaces followed by 1 or more spaces.
\|\s+\S+\s+\| ##Matching |(literal) followed by spaces followed by 1 or more non-spaces followed by spaces with |(literal character) here.
\s+ ##Matching 1 or more spaces occurrences here.
([^\|]*) ##Creating 1 and only capturing group which has everything till next occurrence of | to get Degree SP value mentioned by OP in samples.
\s+\|.*$ ##Matching 1 or spaces followed by | till last of value/line.
如果字符串 Degree SP
应该在管道和 space 之间:
\|\s([^\s|][^|]*SP)\s\|
\|\s
匹配|
和一个 whitespace char(
捕获 组 1[^\s|]
匹配 space 或|
以外的单个字符
[^|]*SP
匹配|
以外的可选字符并匹配 SP
)
关闭组 1\s\|
匹配白色 space 字符和|
如果只有Degree SP
后的管道是必须的:
([^\s|][^|]*SP)\s*\|