title: python regex matching "ab" or "ba" words
body: <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>