我对.感到困惑。我认为它应该与“我们”中的"e“匹配,因为:
W是"e“字字符。
“b”是“”(空格)。
W是另一个单词"w“
所以比赛是“我们”中的“我们”。但是..。
/\w\b\w/永远不会匹配任何内容,因为一个单词字符后面永远不能跟着一个非字字符和一个字字符。
我从MDN那里得到这个:
我不明白他们的解释。你能帮我解释一下吗?谢谢!
发布于 2016-01-26 03:43:38
关键是\b的意思。\b匹配一个单词边界。一个单词边界匹配一个单词字符不跟随或前面没有另一个单词字符的位置。请注意,匹配的单词边界不包括在匹配中。换句话说,匹配的单词边界的长度为零。
所以\b本身并不匹配任何东西,它只是一个条件,比如^,$等等。就像/^\w/的意思是从单词开始,/\w\b/指的是一个单词字符,而不是一个单词字符.
在"e w"中,/\w\b/只匹配单词-字符后面没有单词-字符的"e"是空格,而不是"e "。
/\w\W/在"e w"中与"e "匹配。\b只是一个条件不匹配任何东西。
/\w\b\w/是指一个字-字符,后面跟着一个非字,而一个字-字符是矛盾的,所以永远不会匹配任何东西。
发布于 2013-12-24 02:12:45
空格字符不是单词边界。单词边界本身不是一个字符,它是“在字符之间”的位置,其中一个单词字符转换为一个非单词字符。
因此,"e w".match(/\w\b/)只匹配"e",而不匹配"e "。
/\w\b\w/从来不匹配任何东西,因为它要求一个单词字符后面紧跟一个非单词字符和一个单词字符,这当然是不可能的。
发布于 2013-12-24 02:20:59
\w\b\w表示匹配:
\w);后面跟着\w)。关键是\b不消耗任何字符,它检查哪些字符与测试位置相邻。因此\w\b\w只匹配两个字符,两者都必须是字母数字(\w),它们之间的假想点必须在一边有字母数字,另一边必须有非字母数字,因此这是不可能匹配的。
希望这能有所帮助。
https://stackoverflow.com/questions/20753930
复制相似问题