So. We have a very, very weak filter on the all-chat that moves lines containing WTS to the trade chat. We have no forthcoming auction house. What we do have, is a terrible spam problem choking out general chat with wts and wtb spam in many, many districts. I don't know about you, but I personally, would like to have general chat back.
So, we've got basic pattern matching in place already. The chat system appears to be stolen largely from IRC anyway. Here's my idea:
Let users write lists of regular expressions (basic ones even, no backreferences or anything) to filter spam from at least the all chat. Ideally, there's no reason not to allow the use of the same code for each chat channel, but you'd need different lists of regexes for each. It could be done client-side, with just a config file filled with regexes, one per line, arranged by channel. When a line comes in chat, your machine, the client, can run it by a list of regexes and just supress the on-screen output if it matches. (One other thing: Let users turn it off, or just run a blank spam file for possible preformance reasons. I don't know what language GW is written in, or how efficient it is at string processing)
The whole thing would be done on the client end, incurring no extra load on the servers, and it could, effectively push spam back to the trade channel, if it gets used that way. It could also act as your own personal profanity filter, if you want to use it that way.
For instance:
----begin config----
[general]
[Ww]\s*[Tt]\s*[Ss]\s*
---end config----
Would supress any line in general chat with W or w, followed by 0 or more spaces, followed by T or t with 0 or more spaces, followed by S or s with 0 or more spaces. Already a huge improvement over the current "filter", as it would match WTS, wts, WtS, W ts, W T S, W TS, W T S, w t s, etc.
Surely there's at least a couple more people out there who're familiar with regexes. It only takes, like, 10 (number not cryptographically random

Worst case, spammers have to at least be literate, writing stuff like "Good Sirs! I desire to trade away this magnificent sword of purest crystal, forged in the fires of the HoH chest itself! Fifteen glorious points per cent, Up fifty! One hundred k plus four score globs of ectoplasmic goo are all I ask!"
And if they'll do that, I say the entertainment is enough.

For more information on regular expressions see http://en.wikipedia.org/wiki/Regex , or your friendly neighborhood geek.
Anyway... Comments? Thoughts? Point out why this idea is fundamentally flawed? (Aside from asking anet to re-implement a regex matching function, I'm presuming that since it's been done dozens of times, and they freakin' wrote guild wars, that they've got the talent at least)