edg*_*ner 13
如果您只想匹配整个单词,则需要单词字符选择器
\B\$\w+
Run Code Online (Sandbox Code Playgroud)
这将匹配a $后跟一个或多个字母,数字或下划线.在Rubular上尝试一下
Pay*_*tey 13
\$(\w+)
Run Code Online (Sandbox Code Playgroud)
说明:
\$:转义特殊$字符
():在这里捕获匹配(至少在大多数引擎中)
\w:匹配a - z,A - Z和0 - 9(和_)
+:匹配任意次数
我想你想要这样的东西:
/(^\$|(?<=\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)