Javascript 正则表达式匹配,当后跟空格或无空格时

Javascript 正则表达式匹配,当后跟空格或无空格时,javascript,regex,Javascript,Regex,嗨,只有在单词前面有空格或没有空格的情况下,我如何编写正则表达式来匹配单词 当前我的正则表达式是这样的/(R)(\)([0-9]+)/gi,它匹配后面没有空格的单词 我想匹配r23,r30,如果后面跟一个空格或者没有空格 例如: const str = 'R 34 r 45, for 2 a day'; console.log(str.replace(/(R)(\ )([0-9]+)/gi,'R$3')) //prints "R34R45, foR2 a day" //expected "

嗨,只有在单词前面有空格或没有空格的情况下,我如何编写正则表达式来匹配单词

当前我的正则表达式是这样的
/(R)(\)([0-9]+)/gi
,它匹配后面没有空格的单词

我想匹配r23,r30,如果后面跟一个空格或者没有空格

例如:

const str  = 'R 34 r 45, for 2 a day';
console.log(str.replace(/(R)(\ )([0-9]+)/gi,'R$3')) 
//prints "R34R45, foR2 a day"
//expected "R34 R45, for 2 a day"

您需要在R之前使用单词边界,并且不需要捕获,可以改用lookahead


搜索:
\bR(?=\d)
并替换为
R

如果在R之前需要单词边界,并且不需要捕获,则可以使用先行搜索


搜索:
\bR(?=\d)
并替换为
R

是,您也可以将空格替换为
\s+
以匹配任何1+空格字符。您的正则表达式不会将
r45
转换为
r45
。使用此选项:
/\bR\?(?=\d)/gi
是,您还可以将空格替换为
\s+
以匹配任何1+空格字符。您的正则表达式不会将
r45
转换为
r45
。使用以下命令:
/\bR\?(?=\d)/gi