Try:
Find:
Code:
(<p(?: [^>]+)?>)(<a [^>]+>[^<>]+</a>)((?:(?!</?a(?: [^>]+)?>).)*)(?=</p>)
Replace:
Match 1 is the opening paragraph tag. We could use a positive lookbehind and skip replacing that, but then we can't match optional classes and stuff.
Match 2 (in blue above) captures the link and link text:
Code:
<a [^>]+>[^<>]+</a>
Match 3 (in red above) captures the note content, by matching a string that
doesn't contain an "a" tag. I lurves my negative lookarounds

:
Code:
(?:(?!</?a(?: [^>]+)?>).)*
Finally, we look ahead to spot the closing paragraph tag.