Javascript 将单词与旁边的空格匹配
我试图匹配以下示例(javascript): 1.-“狗狗”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- 这
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(或dogdog
s)和dog
。当一个词匹配时,你如何确定优先级?谢谢你的回答。示例5接受\n和\s。我必须更新它。如果旁边没有字符或符号,则1和3必须匹配。