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)