擅长:python、mysql、java
<p>如果我理解正确,您希望<code><=</code>周围的单词由<code>"</code>或<code>\</code>分隔。如果是:</p>
<pre><code>re.findall(r'["\\]([^"\\]+<=[^"\\]+)(?=["\\])', str_)
</code></pre>
<ul>
<li><p><code>["\\]</code>匹配<code>"</code>或<code>\</code></p></li>
<li><p>捕获的组<code>([^"\\]+<=[^"\\]+)</code>匹配一个或多个非<code>"</code>或<code>\</code>的字符,后跟<code><=</code>,然后再匹配一个或多个非<code>"</code>或<code>\</code>的字符</p></li>
<li><p>带正向前瞻的零<code>(?=["\\])</code>,确保捕获的组后面紧跟<code>"</code>或<code>\</code></p></li>
</ul>
<p><strong>示例:</strong></p>
<pre><code>In [171]: str_ = '{\nnode [shape=box] ;\n0 [label="X[2] <= 17055.5\\ngini = 0.0454\\nsamples = 43\\nvalue = [42, 1]"] ;\n1 [label="gini = 0.0\\nsamples = 1\\nvalue = [0, 1]"] ;\n0 -> 1 [labeldistance=2.5,
...: labelangle=45, headlabel="True"] ;\n2 [label="gini = 0.0\\nsamples = 42\\nvalue = [42, 0]"] ;\n0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel="False"] [label]="X[0] <= 5.41" ;\n}'
In [172]: re.findall(r'["\\]([^"\\]+<=[^"\\]+)(?=["\\])', str_)
Out[172]: ['X[2] <= 17055.5', 'X[0] <= 5.41']
</code></pre>