如何在java中查找所有未转义或前面未加\的$

如何在java中查找所有未转义或前面未加\的$,java,regex,Java,Regex,测试用例: 他有500美元 他有500美元 $ \$ 匹配项应该是第一个和第三个,因为第二个和第四个已经包含转义的“$” 我试过-Pattern=Pattern.compile((^\\\$)”但它不匹配任何。请帮忙。(? (?<!\\)\$ 你可以试试这个。看演示 (? 你可以试试这个。看演示 您可以在此处使用负查找来排除已转义的$字符 (?<!\\\\)\\$ (?您可以在此处使用负查找来排除已转义的$字符 (?<!\\\\)\\$ (?你必须处理\\$(2\才能转义

测试用例:

  • 他有500美元
  • 他有500美元
  • $
  • \$
  • 匹配项应该是第一个和第三个,因为第二个和第四个已经包含转义的“$”

    我试过-
    Pattern=Pattern.compile((^\\\$)”但它不匹配任何。请帮忙。

    (?
    
    (?<!\\)\$
    
    你可以试试这个。看演示

    (?
    你可以试试这个。看演示


    您可以在此处使用负查找来排除已转义的
    $
    字符

    (?<!\\\\)\\$
    

    (?您可以在此处使用负查找来排除已转义的
    $
    字符

    (?<!\\\\)\\$
    


    (?你必须处理
    \\$
    (2
    \
    才能转义
    \
    )?你必须处理
    \\$
    (2
    \
    才能转义
    \
    )?这既不是正则表达式字符串文字,也不是原始正则表达式。是否要继续修复它,直到它与另一个答案相同?一个字符串在Java中会有两个反斜杠。
    (?这对我(Java)来说非常适合,但为什么我们需要4`\`?
    matcher.replaceAll(\\$))
    返回同一个字符串,但没有转义。你知道会出什么问题吗?这既不是正则表达式字符串文字,也不是原始正则表达式。你要一直修复它,直到它与另一个答案相同吗?一个字符串在Java中会有两个反斜杠。
    (?这对我来说非常合适(Java),但为什么我们需要4`\`?
    matcher.replaceAll(\\$)
    返回相同的字符串,没有转义。你知道会出什么问题吗?可能以。*开头和结尾。所以它匹配整行,而不仅仅是$@CharlieS OP只想匹配
    $
    。所以匹配整行太过分了。他想匹配1和3,他是指行还是$?我不能确定,所以给了额外的..d没关系,因为OP已经接受了一个错误的答案:)@CharlieS是的,让我们撕开:Pand仍然是真正正确的,如果你包括“”可能以。*开头和结尾。所以它匹配整行,而不仅仅是$@CharlieS OP只想匹配
    $
    。所以匹配整行太过分了。他想匹配1和3,是指行还是$?我不能确定,所以给了额外的。。没关系,因为OP接受了错误的答案:)@查理斯:是的,让我们撕扯一下:Pand仍然是真正正确的,如果你包括“