擅长:python、mysql、java
<p>首先你需要得到文本中<code>String_A</code>和<code>String_B</code>的索引。看这个:</p>
<pre><code>s = mystring
[i for i in range(len(s)-len(String_A)+1) if s[i:i+len(String_A)]==String_A]
</code></pre>
<p>它返回<code>[4, 9]</code>,即<code>mystring</code>中<code>'BB'</code>的索引。对于答案为<code>[15, 21]</code>的字符串\u B,也可以这样做。你知道吗</p>
<p>然后你可以这样做:</p>
<pre><code>[(i, j) for i in [4, 9] for j in [15, 21] if i < j]
</code></pre>
<p>该行将每个起始位置与每个结束位置合并,并确保起始位置出现在结束位置之前。<code>i < j</code>对于这个特定的例子来说并不是必需的,但是一般来说您应该拥有它。结果是<code>[(4, 15), (4, 21), (9, 15), (9, 21)]</code>。你知道吗</p>
<p>然后将开始索引和结束索引转换为子字符串:</p>
<pre><code>[s[a:b+len(String_B)] for a, b in [(4, 15), (4, 21), (9, 15), (9, 21)]]
</code></pre>