正则表达式匹配以$开头的整个单词

nod*_*nja 14 regex

我需要一个正则表达式来匹配以$开头的整个单词.什么是表达式,如何测试?

例:

应提取此$ word和$ this.

在上面的句子,$word并且$this会被发现.

edg*_*ner 13

如果您只想匹配整个单词,则需要单词字符选择器

\B\$\w+
Run Code Online (Sandbox Code Playgroud)

这将匹配a $后跟一个或多个字母,数字或下划线.在Rubular上尝试一下

  • 是不是"不是"一个字?"点"怎么样?"副作用"一词是什么?是的,是的,是的."42"是一个字吗?关于什么 "_____"?不,不. (2认同)

Pay*_*tey 13

\$(\w+) 
Run Code Online (Sandbox Code Playgroud)

说明:

\$:转义特殊$字符
():在这里捕获匹配(至少在大多数引擎中)
\w:匹配a - z,A - Z0 - 9(和_)
+:匹配任意次数


use*_*418 5

我想你想要这样的东西:

/(^\$|(?<=\s)\$\w+)/
Run Code Online (Sandbox Code Playgroud)

第一个括号只捕获您的结果。

^\$ 匹配整个字符串的开头,后跟一个美元符号;

| 给你一个选择或;

(?<=\s)\$ 是一个正面的外观,它检查是否有一个美元符号 \$ 后面有一个空格 \s。

最后,(回顾一下)如果我们有一个以 $ 开头或 $ 前面有一个空格的字符串,那么正则表达式会检查后面是否有一个或多个单词字符 - \w+。

这将匹配:

$test one two three
Run Code Online (Sandbox Code Playgroud)

one two three $test one two three
Run Code Online (Sandbox Code Playgroud)

但不是

one two three$test
Run Code Online (Sandbox Code Playgroud)