1
我有我应该维护的代码库的这段代码片段。用参数/标记替换正则表达式字符串
String number = "1";
String value = "test";
String output = "";
output = value.replaceAll("\\Q{#}", number);
的output
住宿为“测试”的价值,我只能猜测这是什么代码是应该做的:的number
值应被追加到无论是在价值。也许像这样:test1
或完全用数字替换该值。
我发现\\Q
是引用所有内容的正则表达式选项,直到\\E
,但没有\\E
。无论如何,它根本没有做任何事情,我想知道我是否监督了一些事情?
正则表达式匹配一个文字'{#}'。如果你的'value'是'test {#}','{#}'将被替换为数字。请参阅[本演示](https://ideone.com/Zizftn)。 E \只是停止引用,如果缺失,整个模式将被引用,就是这样。 –
AFAIK'#'在正则表达式中没有特殊字符,所以假设Java正则表达式理解'\ Q',它将查找不存在于'value'中的字符串'{#}'。除此之外,你的猜测是错误的:'replaceAll'用'number'取代匹配 - 如果你想在最后附加一些东西,你需要匹配输入的结尾,例如只需使用表达式'$'。 – Thomas
我在帖子中看不到问题。你在找什么? –