Regex 正则表达式匹配Google电子表格中特定单词后的前n行

Regex 正则表达式匹配Google电子表格中特定单词后的前n行,regex,spreadsheet,regex-group,Regex,Spreadsheet,Regex Group,在Google电子表格脚本中,我想捕获I=Transactional> 并且新行不应该以单词STYLE 全文如下: <http://link.ORDERACK...&i=Transactional> STYLE: 0043 QTY: 11 <http://link.ORDERACK...&i=Transactional> Striped Cotton Rugby Short RED <http://link.ORDERACK...&i=T

在Google电子表格脚本中,我想捕获
I=Transactional>
并且新行不应该以单词
STYLE

全文如下:

<http://link.ORDERACK...&i=Transactional>
STYLE: 0043
QTY: 11 

<http://link.ORDERACK...&i=Transactional>
Striped
Cotton Rugby Short RED
<http://link.ORDERACK...&i=Transactional>
STYLE: 0042
QTY: 10 

<http://link.ORDERACK...&i=Transactional>
Striped
Cotton Polo Short
但是,输出还包括
i=Transactional>

i=Transactional> Striped Cotton Rugby Short RED
i=Transactional> Striped Cotton Polo Short

尝试使用
(?
获取
i=Transactional>
之后的所有内容,但在google电子表格脚本(或我的代码)中不起作用

我希望看到的输出:

Striped Cotton Rugby Short RED
Striped Cotton Polo Short

由于Javascript并不普遍支持lookbehinds,因此您必须满足于捕获组:

(i=Transactional>\r?\n)(?!STYLE)(.*\r?\n.*)


您所需的数据将位于捕获组#2

中,请参见,因为Javascript并不普遍支持lookbehinds。@MonkeyZeus我不确定它在这里有什么帮助。我尝试了
[\r\n]+([^\r\n]+)
,它给出了下一行的文本(没有
I=Transactional>
)但是,当我添加有关
样式的条件时,它将不起作用。因此您的正则表达式完全失败?请参阅我取消删除的答案。听起来第1步是正确的正则表达式。我认为OP还需要支持CRLF结尾,所以它应该是
/(I=Transactional>\r?\n)(?!STYLE)(.\r?\n.*)/
@WiktorStribiżew注意到,谢谢!@ZahraHnn
*
捕获整行,然后
\r?\n
捕获换行符,第二个
*
捕获下一行line@ZahraHnn
*
匹配除换行字符以外的任何0个或多个字符,因此
*\r?\n.*
匹配两行中的CRLF或LF换行序列@ZahraHnn您的错误在于使用了
(.*\r*\n){2}
,因为它要求在该行之后有换行符,但
Cotton Polo Short
在其之后没有换行符,所以该字符串只会终止
(i=Transactional>\r?\n)(?!STYLE)(.*\r?\n.*)