15

我有一个带有磅#修饰符的正则表达式。

\#正则表达式中的含义是什么?#正则表达式中的含义是什么?Java是否有可能只是忽略了这些无效的修饰符?

4

3 回答 3

15

\#不是有效的正则表达式修饰符。从技术上讲,这将是一种转义#字符的方法,如果这#意味着 Java 正则表达式中的任何重要内容。因为它没有,Java 只是忽略这种无效性并将其读取为 a#而不是向您抛出错误。

于 2012-08-31T18:11:42.280 回答
2

我刚遇到同样的问题。事实证明,之前的程序员在将所有“旧代码”从 更改为时“错过了” #|这是一个简单的错误。我通过检查应用程序中的所有其他代码发现了这一点,没有发现其他#符号,但|包含许多类似的代码区域。就在这段代码的|旁边。#所以有人将旧的正则表达式换成新的正则表达式并“错过”。

于 2013-09-07T03:40:11.523 回答
1

正如您所怀疑的,这只是一个错误。

可以肯定的是,我跑了:

String quote = Pattern.quote("_#_");

输出是:

"\Q_#_\E"

因此,很明显,井号(“#”)不是 java 正则表达式的特殊字符。

请参阅:Pattern.quote()

于 2012-08-31T18:21:52.303 回答