Javascript 将单词与旁边的空格匹配

Javascript 将单词与旁边的空格匹配,javascript,regex,match,whitespace,space,Javascript,Regex,Match,Whitespace,Space,我试图匹配以下示例(javascript): 1.-“狗狗” R-匹配狗=真 2.-“狗狗” R-匹配狗=错误 3.-“猫狗狗” R-匹配狗(两次)=正确 4.-“猫狗$狗” R-匹配狗=错误 5.-“猫狗\ndog”或“猫狗\sdog” R-匹配狗(两次)=正确 6.-“猫狗$狗狗$狗狗” R-数学狗(两次)=真 我刚刚得到了这个/\b(狗)\b/g,但是如果我使用这个/^(狗)$/g,只匹配一个单词 提前感谢试试这个: /(^|\s)(dog)(?=\s|$)/gm 通过regexr- 这

我试图匹配以下示例(javascript):

1.-“狗狗”
R-匹配=真

2.-“狗狗”
R-匹配=错误

3.-“猫狗狗”
R-匹配(两次)=正确

4.-“猫狗$狗”
R-匹配=错误

5.-“猫狗\ndog”或“猫狗\sdog”
R-匹配(两次)=正确

6.-“猫狗$狗狗$狗狗”
R-数学狗(两次)=真

我刚刚得到了这个/\b(狗)\b/g,但是如果我使用这个/^(狗)$/g,只匹配一个单词

提前感谢

试试这个:

/(^|\s)(dog)(?=\s|$)/gm
通过regexr-


这将匹配字符串或空格的开头,然后是单词dog,然后是空格或字符串的结尾。后面的空白/字符串结尾是一个正向的前瞻,因此它不会被占用,允许该空间用于另一个匹配-例如“猫-狗”

您能更好地解释所需的行为吗?例5允许
\s
而不是空格,因此它可以接受任何空格序列?在我看来,例1和例3冲突。如果“dog”与“dogs”匹配是因为
dog
包含在
dog
s中,那么示例3应与“dog”匹配:
dog
dog
s、
dog(或dog
dog
s)和
dog
。当一个词匹配时,你如何确定优先级?谢谢你的回答。示例5接受\n和\s。我必须更新它。如果旁边没有字符或符号,则1和3必须匹配。