Java 正则表达式匹配以“开始”开头的单词$&引用;

Java 正则表达式匹配以“开始”开头的单词$&引用;,java,regex,Java,Regex,我需要匹配以美元符号开头的单词$ 我尝试了以下正则表达式: \b\$banana\b 但这会产生以下结果: few words have$banana // match, but should not few words have $banana // not match, but should 我不明白为什么会这样 我需要找到单词,以便第一个案例不必匹配,只有第二个案例必须匹配。我哪里做错了 我使用Java进行测试,但正则表达式必须独立于编程语言工作。(?:^|)(?使用“非单词边界”术语

我需要匹配以美元符号开头的单词
$

我尝试了以下正则表达式:

\b\$banana\b
但这会产生以下结果:

few words have$banana // match, but should not
few words have $banana // not match, but should
我不明白为什么会这样

我需要找到单词,以便第一个案例不必匹配,只有第二个案例必须匹配。我哪里做错了

我使用Java进行测试,但正则表达式必须独立于编程语言工作。

(?:^|)(?使用“非单词边界”术语
\B

(?:^|(?<=\s))\$banana\b
\B\$banana\b
因为
$
不是单词字符,所以您希望匹配
$
前面的字符也不是单词字符的位置;此正则表达式不会匹配
foo$banana
,而是匹配
foo$banana

看表演


你想两者都匹配吗?你期望的结果是什么?我只需要找到这个
少数单词有$banana
不需要匹配的单词。然后选择Bohemian的答案,或者我也可以发布。
foo $banana bar (match)
foo$banana bar (no match)
foo $bananabar (no match)