我有一个带有磅#
修饰符的正则表达式。
\#
正则表达式中的含义是什么?#
正则表达式中的含义是什么?Java是否有可能只是忽略了这些无效的修饰符?
\#
不是有效的正则表达式修饰符。从技术上讲,这将是一种转义#
字符的方法,如果这#
意味着 Java 正则表达式中的任何重要内容。因为它没有,Java 只是忽略这种无效性并将其读取为 a#
而不是向您抛出错误。
我刚遇到同样的问题。事实证明,之前的程序员在将所有“旧代码”从 更改为时“错过了” #
,|
这是一个简单的错误。我通过检查应用程序中的所有其他代码发现了这一点,没有发现其他#
符号,但|
包含许多类似的代码区域。就在这段代码的|
旁边。#
所以有人将旧的正则表达式换成新的正则表达式并“错过”。
正如您所怀疑的,这只是一个错误。
可以肯定的是,我跑了:
String quote = Pattern.quote("_#_");
输出是:
"\Q_#_\E"
因此,很明显,井号(“#”)不是 java 正则表达式的特殊字符。
请参阅:Pattern.quote()