0

我想匹配其中一个不断变化的单词对(循环遍历字符串数组)。问题是这个词可能包含元字符,我不知道是哪些,所以手动转义它们有点问题。有没有办法构造一个已经在java中转义所有元字符的字符串模式?

4

2 回答 2

1

如果您专门谈论正则表达式,正如“匹配单词”所暗示的那样,那么您想要的方法是Pattern.quote

在更一般的意义上,当您不知道您的目标语法是什么时,没有办法自动转义“元字符”。原则上,任何字符都可能具有特殊的非字面意义,而转义它的方式完全取决于目标语法。在正则表达式中,它以反斜杠为前缀,但对于您的问题,不清楚您是否在谈论正则表达式。

于 2012-05-02T08:10:34.683 回答
0

你有一个带有元字符的字符串,但你不知道究竟是什么元字符。但在某种程度上你知道元字符是什么。

如果您知道所有可以出现在字符串中的元字符,只需将它们列在组中:([\*abc\$\.\,\s]该组表示在正则表达式中您可以遇到这些字符之一,例如星号、a、b、c、bucks ($)、point 、逗号、空格)。您也可以使用^( [^....]) 反转逻辑。

于 2012-05-02T08:11:37.130 回答