gpt4 book ai didi

java - 带引号的正则表达式与 Java 中的任何内容都不匹配

转载 作者:行者123 更新时间:2023-12-01 14:04:48 24 4
gpt4 key购买 nike

我可以使用以下示例字符串之一:

Apple $Banana Kiwi

Apple $Banana, Kiwi

Apple $Banana. Kiwi

我需要在字面上找到“$Banana”

在 java 6 中,我使用了这个:
String quotedStringToFind=Pattern.quote(stringTofind);

我还需要找到完整的单词,所以我尝试了这个:
Pattern.compile("\\b"+quotedStringToFind+"\\b");

没有什么是匹配的。 RegEx 在语法上是正确的。我不明白为什么它不起作用。

最佳答案

几个问题:

  • $是一个保留字符,意思是“字符串的结尾”。您需要首先转义任何保留字符( \^$.|?*+()[{ ),或使用 Pattern.LITERAL 编译表达式就像@Reiumeus 的回答一样。
  • 空格和$之间没有词边界在 Apple $Banana ,因为它们都是非单词字符。假设您希望在 stringTofind 之前或之后有一个空格,您可以使用这样的表达式: (?<=\\s|^)\\$Banana(?=\\s|$) (请注意,这不适用于 Pattern.LITERAL ,因为它不会评估环视)。
  • 关于java - 带引号的正则表达式与 Java 中的任何内容都不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26531502/

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