I do not find any single symbolic way in common use to specify a search only for one particular tag and excluding all others. As mentioned in my earlier comment, I do not approve your recommendation of '!' because it too closely resembles the negation operator used in many modern computer programming languages.
My best guess at a reasonable design is to use the asterisk, '*' to emphasize "only."
Example: type '*[php]' to specify "give me only items tagged with 'php' and nothing else."
This would avoid implying something like the "not" operator in common use.
I would also recommend providing '+' to make a tag required and '-' to prohibit one, including the ability to use multiple plusses and multiple minuses.
Example: '+[php] +[css] -[PDF]' to specify "give me items tagged with
'[php]' and '[css]' but not with '[PDF]'.
That syntax is used at Delicious and in Google searches, so it is reasonably intuitive.