python regex matching "ab" or "ba" words
<p>I tried matching words including the letter "ab" or "ba" e.g. "ab"olition, f"ab"rics, pro"ba"ble. I came up with the following regular expression:</p>

<pre><code>r"[Aa](?=[Bb])[Bb]|[Bb](?=[Aa])[Aa]"
</code></pre>

<p>But it includes words that start or end with ", (, ), / ....non-alphanumeric characters. How can I erase it? I just want to match words list. </p>

<pre><code>import sys
import re

word=[]

dict={}

f = open('C:/Python27/brown_half.txt', 'rU')
w = open('C:/Python27/brown_halfout.txt', 'w')

data = f.read()
word = data.split() # word is list

f.close()

for num2 in word:
    match2 = re.findall("\w*(ab|ba)\w*", num2)
    if match2:
        dict[num2] = (dict[num2] + 1) if num2 in dict.keys() else 1

for key2 in sorted(dict.iterkeys()):print "%s: %s" % (key2, dict[key2])
print len(dict.keys())
</code></pre>

<p>Here, I don't know how to mix it up with "re.compile~~" method that 1st comment said...</p>