gpt4 book ai didi

java - Matcher.appendReplacement 用文字文本

转载 作者:太空狗 更新时间:2023-10-29 23:00:50 26 4
gpt4 key购买 nike

我正在使用 Matcher.appendReplacement()在我的替换字符串中有 $2 之前,它工作得很好:

Note that backslashes ( \ ) and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string. Dollar signs may be treated as references to captured subsequences as described above, and backslashes are used to escape literal characters in the replacement string.

有没有什么方便的方法可以用反斜杠转义所有反斜杠\和美元符号 $ ?还是必须自己写一个?听起来并不难,如果他们给你一个就好了 >:(

编辑:因为他们给了你一个,我需要replace(">:(", ":-)");

最佳答案

使用Matcher.quoteReplacement在替换字符串上。

不幸的是,这种情况下的“易用性”与强类型冲突。 [说明:Java 静态类型 java.lang.String 的对象是 char 的任何不可变序列。它不会告诉您原始数据的格式。在这种情况下,我们有可能对用户有意义的文本,用迷你语言编码的文本用于替换,用迷你语言编码的文本用于模式。 Java 类型系统无法区分这些(尽管您可以使用基于注释的类型检查器做一些有趣的事情,通常是为了避免 XSS 或 SQL/命令注入(inject)漏洞)。对于模式迷你语言,您可以使用 Pattern.compile 转换为一种形式,尽管这是一种特定用途,大多数 API 方法都会忽略它(为了便于使用)。可以编写等效的 ReplacementText.compile。此外,您可以忽略迷你语言并将库作为“DSL”。但所有这些都无助于随意使用。]

关于java - Matcher.appendReplacement 用文字文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/947116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com