javaregexregex-negationbean-io

What's a regex that matches all numbers except 1, 2 and 25?


There's an input of strings that are composed of only digits, i.e., integer numbers. How can I write a regular expression that will accept all the numbers except numbers 1, 2 and 25?

I want to use this inside the record identification of BeanIO (which supports regular expressions) to skip some records that have specific values.

I reach this point ^(1|2|25)$, but I wanted the opposite of what this matches.


Solution

  • Not that a regex is the best tool for this, but if you insist...

    Use a negative lookahead:

    /^(?!(?:1|2|25)$)\d+/
    

    See it here in action: http://regexr.com/39df2