【问题标题】:Pattern.quote adds \\Q and \\E to the string javaPattern.quote 将 \\Q 和 \\E 添加到字符串 java
【发布时间】:2011-05-05 15:19:35
【问题描述】:

我正在尝试用该文本的小写版本替换带有特殊字符(需要我 Pattern.quote 它们)的文本,但 Pattern.quote 函数有时会在开头和结尾添加 \Q 和 \E文本,因此替换方法找不到它。 我使用的代码是:

bigText = bigText.replaceFirst(Pattern.quote(text),text.toLowerCase());

有没有办法丢失这些字符?

【问题讨论】:

  • 您能否举一个text 的示例以及您想与之匹配的内容?

标签: java regex pattern-matching


【解决方案1】:

添加\Q\E 正是Pattern.quote() 所做的!你为什么不想要那个?

如果您只需要引用该字符串的某些字符,则必须手动进行。

【讨论】:

  • 如果是这样,它不能如我所愿更换。另外 - 为什么有时它确实有效(意味着它不添加那些字符)?
  • 阅读 OpenJDK 1.6 的源代码只显示了一种没有添加这些的情况,那就是输入是null(在这种情况下会抛出 NPE)。据我所知,它一直是这样工作的。
  • 是的,我做了一些研究,你说得对。我想我应该更深入地探索我的代码,看看为什么它没有被替换......
猜你喜欢
  • 1970-01-01
  • 2015-05-06
  • 2010-12-11
  • 2011-02-09
  • 2011-09-10
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多