title: Regular Expression to match #hashtag but not #hashtag; (with semicolon)
body: <p>I have the current regular expression:</p>
  
  <pre><code>/(?&lt;=[\s&gt;]|^)#(\w*[A-Za-z_]+\w*)/g
  </code></pre>
  
  <p>Which I'm testing against the string:</p>
  
  <pre><code>Here's a #hashtag and here is #not_a_tag; which should be different. Also testing: Mid#hash. #123 #!@£ and &lt;p&gt;#hash&lt;/p&gt;
  </code></pre>
  
  <p>For my purposes there should only be two hashtags detected in this string. I'm wondering how to alter the expression such that it <strong>doesn't</strong> match hashtags that end with a <code>;</code> in my example this is <code>#not_a_tag;</code></p>
  
  <p>Cheers.</p>