当前位置: 首页 > 面试题库 >

具有文字文本的Matcher.appendReplacement

栾英资
2023-03-14
问题内容

我正在使用Matcher.appendReplacement(),它工作得很好,直到替换字符串中有2美元为止:

请注意,替换字符串中的反斜杠(\)和美元符号($)可能导致结果与被当作文字替换字符串的结果有所不同。如上所述,美元符号可被视为对捕获的子序列的引用,并且反斜杠用于转义替换字符串中的文字字符。

是否有一种方便的方法可以使所有反斜杠\和美元符号$都带有反斜杠?还是我必须自己写一个?听起来好像并不难,但是如果他们给您一个> :(

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


问题答案:

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

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



 类似资料:
  • 如何创建具有文本限制的多行edittext?我设置了edittext的maxLength,但它使edittext成为单行,如果我将inputType添加到textMultiLine,则设置为actionDone的imeOptions将不会显示。我不想为maxLines属性设置静态值。 而且,当编辑文本达到其极限时,键盘仍然允许文本,这使得删除文本变得困难。如何解决这个问题?

  • 问题内容: 我有一个包含7000万行文本的大型测试文件。我必须逐行阅读文件。 我使用了两种不同的方法: 和 是否有另一种方法可以使此任务更快? 最好的祝福, 问题答案: 1)我确定速度没有差异,两者都在内部使用FileInputStream和缓冲 2)您可以进行测量并亲自查看 3)虽然没有性能优势,但我喜欢1.7方法 4)基于扫描仪的版本 5)这可能比其余的更快 它需要一些编码,但是由于,它确实可

  • 问题内容: 我正在Nexus 5上测试Android 6.0,并且正在使用Metaio(我知道该服务将在12月15日结束,但是在那一天我们将转移到另一个AR平台)。问题是,当我启动ARActivity时,出现以下错误: 有谁知道对此可能的解决方案,或者至少是解决方法?我正在努力寻找解决方案,但我不明白问题可能是什么。 问题答案: 今天,当我在Nexus 6(Motorola)上使用Android

  • 我想创建一个带有JavaFX ChoiceBox的下拉菜单,其中每个条目由一个不同的图标组成,旁边有一个简短的文本。(例如,在语言选择器中,左边有一个小标志,右边有语言名称。) 做这件事最好的方法是什么? 我试着通过CSS来做。下面的几乎管用,但当然它会为所有条目设置相同的图标: 所以我想我可以通过或类似的方式为每个条目赋予自己的图标,但是我尝试的选择器都没有起作用。

  • 它是可能的使用流浪汉设置一个环境为php开发与一些工具,如PHP_CodeSniffer,PHP混乱检测器等,然后使用sublime文本插件sublime-phpcs在主机上使用这些工具从流浪汉? 我想避免在我的主机(mac os)中安装所有这些工具,但仍然使用带有插件的Sublime文本在主机中进行开发。 谢谢!

  • 我试图找到DOM中紧跟在前一个文本节点之后的文本节点的xpath--但它们不是兄弟,它们的xpath关系可能会改变。 我使用祖先和后代是因为uniqueID和text以及uniqueID和$amount之间的元素数量发生了变化。 我的最佳猜测(这不起作用)://text()[contains(.,“$”)][祖先::div[1]//*[text()[contains(.,“uniqueText”)