I have a regular expression with a pound #
modifier.
What does \\#
mean in a regular expression? What does the #
mean in a regul
As you have suspected, it's just a mistake.
To be sure, I ran:
String quote = Pattern.quote("_#_");
and the output was:
"\Q_#_\E"
So, clearly, the pound symbol ("#") is not a special character for java regex.
See: Pattern.quote()
I just had this same issue. It turned out that the prior programmer "missed" when changing all the "old code" from #
to |
and it was a simple mistake. I found this by checking all other code in the app and found NO other #
symbols, but many similar areas of code with |
included. And the |
was right next to the #
in this code. So someone was swapping out old regex for new regex and "missed".
\#
is not a valid regex modifier. It would technically be a way to escape a #
character, IF the #
meant anything significant in Java's regex. Because it doesn't, Java is just ignoring this invalidity and reading it as a #
instead of throwing you an error.