我试图找到以英镑符号开头的单词。的JavaScript。但正则表达式:单词开头的英镑符号
"test #word no#luck".replace(/\b#([\w]+)\b/g, "<#$1>");
字边界似乎并不适用于#-sign。它输出:
test #word no<#luck>
还我有点糊涂了,我需要添加#-Sign又在替换模式“<#$ 1>”,因为算法似乎在这个过程中剥离它。
我试图找到以英镑符号开头的单词。的JavaScript。但正则表达式:单词开头的英镑符号
"test #word no#luck".replace(/\b#([\w]+)\b/g, "<#$1>");
字边界似乎并不适用于#-sign。它输出:
test #word no<#luck>
还我有点糊涂了,我需要添加#-Sign又在替换模式“<#$ 1>”,因为算法似乎在这个过程中剥离它。
试试这个:
result = subject.replace(/(?:^|\s)(#\w+)(?:\s|$)/g, "<$1>");
\b
将只与\w
的问题是, “#” 本身不是** **一个字的字符;因此在它之前有一个非单词到单词的过渡是没有意义的。 – Pointy
由于#不是一个单词字符(它是[a-zA-Z0-9_])#符号后的每个单词都将被匹配。 – ncank
而不是'\ b'你想要'(?= [^ \ w#])''。 – James