我有以下正则表达式返回第一个匹配test,我需要的是最后一个匹配,在$没有test符号或任何其他特殊字符的单词下面的情况下,如何实现?
测试字符串:
$this$ $is$ $a$ $test$
Run Code Online (Sandbox Code Playgroud)
正则表达式:
\b(\w+)\b
Run Code Online (Sandbox Code Playgroud)
six*_*man 13
该$代表字符串的结尾,所以...
\b(\w+)$
Run Code Online (Sandbox Code Playgroud)
但是,您的测试字符串似乎有美元符号分隔符,因此如果它们始终存在,那么您可以使用它而不是\b.
\$(\w+)\$$
Run Code Online (Sandbox Code Playgroud)
var s = "$this$ $is$ $a$ $test$";
document.body.textContent = /\$(\w+)\$$/.exec(s)[1];Run Code Online (Sandbox Code Playgroud)
如果可能有尾随空格,则\s*在结束前添加.
\$(\w+)\$\s*$
Run Code Online (Sandbox Code Playgroud)
最后,如果最后可能有其他非单词的东西,那么请\W*改用.
\b(\w+)\W*$
Run Code Online (Sandbox Code Playgroud)