我有一个长字符串,由一系列由单个字符分隔的段组成~
。
例子:
ST*Any*Characters*are*allowed*here~optional*segment*~optional*segment*~IT1*Any*Characters*are*allowed*here~optional*segment*~IT1*Any*Characters*are*allowed*here~IT1*Any*Characters*are*allowed*here~optional*segment*~optional*segment*~TDS*Any*Characters*are*allowed*here~optional*segment*~optional*segment*~
请注意,这是一个完全没有新行的字符串。我只是为了便于阅读而对其进行了格式化。
输出应该是:
Array{
[0]=>ST*Any*Characters*are*allowed*here~optional*segment*~optional*segment*
[1]=>Array{
[0]=>IT1*Any*Characters*are*allowed*here~optional*segment*
[1]=>IT1*Any*Characters*are*allowed*here
[2]=>IT1*Any*Characters*are*allowed*here~optional*segment*~optional*segment*
}
[2]=>TDS*Any*Characters*are*allowed*here~optional*segment*~optional*segment*
}
如何从输入字符串生成此输出?
问题是我只能保证这些段(ST
, IT1
, TDS
)的开头是强制性的,但它们后面可能跟着随机数量的可选段。
当然,分隔符~
可能只出现在段之间而不是在段内。
更新:我需要将字符串分解为 3 个部分:
- 从 开始
ST
直到第一次出现的字符串IT1
。 IT1
以 next 开始和结束的字符串集合IT1
。- 最后的字符串从字符串开始
TDS
直到字符串的结尾。