使用正则表达式识别分隔符之间的子字符串

问题描述 投票:0回答:1

背景

我想识别起始定界符和结束定界符之间的文本,但我也想在两者之间有不同的文本。您可以在 regexr.com 上查看此示例。

当前解决方案

输入

文字:

"aaa_s_123abc_e_bbbccc_s_456def_e_bbbddd_s_7890_e_wwwddd"

图案:

"/(.*?)(_s_.*?_e_)(.*?)/"

结果

0: aaa_s_123abc_e_
1: aaa
2: _s_123abc_e_
3: 
------------------
0: bbbccc_s_456def_e_
1: bbbccc
2: _s_456def_e_
3: 
------------------
0: bbbddd_s_7890_e_
1: bbbddd
2: _s_7890_e_
3: 
------------------

问题

我缺少最后的字符串

"wwwddd"

问题

为什么第 3 组是空的?如何获取结束分隔符“e”之后的文本?
知道如何更新图案吗?

regex substring delimiter regex-group
1个回答
0
投票

试试这个:

^.*?(?=_s_)|(?<=_s_).*?(?=_e_)|(?<=_e_).*?(?=_s_|$)

© www.soinside.com 2019 - 2024. All rights reserved.