Using regex to match any character except =

I am trying to write a String validation to match any character (regular, digit and special) except =.

Here is what I have written -

 String patternString = "[[^=][\\w\\s\\W]]*"; Pattern p = Pattern.compile(patternString); Matcher m = p.matcher(str); if(m.matches()) System.out.println("matches"); else System.out.println("does not"); 

But, it matches the input string "2009-09/09 12:23:12.5=" with the pattern.

How can I exclude = (or any other character, for that matter) from the pattern string?

2

4 Answers

If the only prohibited character is the equals sign, something like [^=]* should work.

[^...] is a negated character class; it matches a single character which is any character except one from the list between the square brackets. * repeats the expression zero or more times.

3

First of all, you don't need a regexp. Simply call contains:

if(str.contains("=")) System.out.println("does not"); else System.out.println("matches"); 

The correct regexp you're looking for is just

String patternString = "[^=]*"; 
1

If your goal is to not have any = characters in your string, please try the following

String patternString = "[^=]*"; 

If you only want to check for occurence of "=" why don't you use the String indexOf() method?

if str.indexOf('=') //... 
1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like