user3607869
user3607869

Reputation: 315

Rexexp to match all the numbers,alphabets,special characters in a string

I want a pattern to match a string that has everything in it(alphabets,numbers,special charactres)

public static void main(String[] args) {

  String retVal=null;

    try
    {
        String s1 = "[0-9a-zA-Z].*:[0-9a-zA-Z].*:(.*):[0-9a-zA-Z].*";
        String s2 = "BNTPSDAE31G:BNTPSDAE:Healthcheck:Major";

        Pattern pattern = null;


        //if ( ! StringUtils.isEmpty(s1) )
        if ( ( s1 != null ) && ( ! s1.matches("\\s*") ) )
        {
                pattern = Pattern.compile(s1);
        }

        //if ( ! StringUtils.isEmpty(s2) )
        if ( s2 != null )
        {
            Matcher matcher = pattern.matcher( s2 );
            if ( matcher.matches() )
            {
                retVal = matcher.group(1);

                // A special case/kludge for Asentria. Temp alarms contain "Normal/High" etc.
                // Switch Normal to return CLEAR. The default for this usage will be RAISE.
                // Need to handle switches in XML. This won't work if anyone puts "normal" in their event alias.
                if ("Restore".equalsIgnoreCase ( retVal ) )
                {

                }

            }
        }
    }

    catch( Exception e )
    {
        System.out.println("Error evaluating args : " );
    }
     System.out.println("retVal------"+retVal);

}

and output is: Healthcheck Hera using this [0-9a-zA-Z].* am matching only alpahbets and numbers,but i want to match the string if it has special characters also

Any help is highly appreciated

Upvotes: 0

Views: 134

Answers (2)

Robert Spencer
Robert Spencer

Reputation: 1

Try the following regex, it works for me :)

[^:]+

You might need to put a global modifier on it to get it to match all strings.

Upvotes: 0

anusha
anusha

Reputation: 2135

Try this:

If you want to match individual elements try this:

2.1.2 :001 > s = "asad3435@#:$%adasd1213"
2.1.2 :008 > s.scan(/./)
 => ["a", "s", "a", "d", "3", "4", "3", "5", "@", "#", ":", "$", "%", "a", "d", "a", "s", "d", "1", "2", "1", "3"] 

or you want match all at once try this:

2.1.2 :009 > s.scan(/[^.]+/)
 => ["asad3435@#:$%adasd1213"] 

Upvotes: 0

Related Questions