<p>回答您的问题,<code>[(==)(>=)(<=)(in)(like)]</code>是一个字符类,它匹配您在类中定义的单个字符。要匹配字符序列,需要删除<code>[</code>和<code>]</code>并使用交替:</p>
<pre><code>r'==?|>=?|<=?|\b(?:in|like)\b'
</code></pre>
<p>或更好:</p>
<pre><code>r'[=><]=?|\b(?:in|like)\b'
</code></pre>
<p>你<a href="https://ideone.com/gAAfsZ" rel="nofollow">code</a>看起来像:</p>
<pre><code>import re
ss = ['count_EVENT_GENRE in [1,2,3,4,5]','coint_EVENT_GENRE = "ROMANCE"']
for s in ss:
field = re.split(r'[=><]=?|\b(?:in|like)\b', s)[0].strip()
print(field)
</code></pre>
<p>但是,可能还有其他方法(更简单或更安全-取决于实际的规范)来获取所需内容(使用空格分割并获取第一项,使用<code>re.match</code>和<code>r'\w+'</code>或<code>r'[a-z]+(?:_[A-Z]+)+'</code>等)</p>
<p><strong>如果您的值位于字符串开头,以小写ASCII字母开头,然后可以有任意数量的<code>_</code>序列后跟大写ASCII字母,请使用:</p>
<pre><code>re.match(r'[a-z]+(?:_[A-Z]+)*', s)
</code></pre>
<p><a href="https://ideone.com/vJThVZ" rel="nofollow">Full demo code</a>:</p>
<pre><code>import re
ss = ['count_EVENT_GENRE in [1,2,3,4,5]','coint_EVENT_GENRE = "ROMANCE"']
for s in ss:
fieldObj = re.match(r'[a-z]+(?:_[A-Z]+)*', s)
if fieldObj:
print(fieldObj.group())
</code></pre>