I believe you will have to verify the length using .NETs String.Length, but you can check for the other stuff using something like this:
[0-9A-Z!-@].*[0-9A-Z!-@]
If you dont find the above string in your password then it fails the character test. This regular expression amounts to the following:
Find an occurrence of a digit, capital letter, or special symbol followed by anything followed by another digit, capital letter, or special symbol. In other words, find at least one of your desired characters followed eventually by another one.
There may be other ways using :digit: and other identifiers, but the above method is one I use for tasks like yours. The square brackets [] are used to represent the occurrence of one (1) character that is one of the characters in the list inside the square brackets. If you wanted to negate the search you would use something like:
[^A-Za-b]
which means no alphabetic characters. The caret ^ symbol at the beginning of the bracketed list means "none of these".
Hope this helps.