Regular expression syntax for "match nothing"?


I have a python template engine that heavily uses regexp. It uses concatenation like:

re.compile( regexp1 + "|" + regexp2 + "*|" + regexp3 + "+" )

I can modify the individual substrings (regexp1, regexp2 etc).

Is there any small and light expression that matches nothing, which I can use inside a template where I don't want any matches? Unfortunately, sometimes '+' or '*' is appended to the regexp atom so I can't use an empty string - that will raise a "nothing to repeat" error.

12/30/2018 3:23:30 PM

Accepted Answer

This shouldn't match anything:


So if you replace regexp1, regexp2 and regexp3 with '$^' it will be impossible to find a match. Unless you are using the multi line mode.

After some tests I found a better solution


It is impossible to match and will fail earlier than the previous solution. You can replace a with any other character and it will always be impossible to match

6/2/2009 5:51:51 PM

(?!) should always fail to match. It is the zero-width negative look-ahead. If what is in the parentheses matches then the whole match fails. Given that it has nothing in it, it will fail the match for anything (including nothing).

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow