首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式- /\w\b\w/

正则表达式- /\w\b\w/
EN

Stack Overflow用户
提问于 2013-12-24 02:08:54
回答 6查看 643关注 0票数 2

我对.感到困惑。我认为它应该与“我们”中的"e“匹配,因为:

W是"e“字字符。

“b”是“”(空格)。

W是另一个单词"w“

所以比赛是“我们”中的“我们”。但是..。

/\w\b\w/永远不会匹配任何内容,因为一个单词字符后面永远不能跟着一个非字字符和一个字字符。

我从MDN那里得到这个:

Expressions

我不明白他们的解释。你能帮我解释一下吗?谢谢!

  • 尼克
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 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/是指一个字-字符,后面跟着一个非字,而一个字-字符是矛盾的,所以永远不会匹配任何东西。

票数 2
EN

Stack Overflow用户

发布于 2013-12-24 02:12:45

空格字符不是单词边界。单词边界本身不是一个字符,它是“在字符之间”的位置,其中一个单词字符转换为一个非单词字符。

因此,"e w".match(/\w\b/)只匹配"e",而不匹配"e "

/\w\b\w/从来不匹配任何东西,因为它要求一个单词字符后面紧跟一个非单词字符和一个单词字符,这当然是不可能的。

票数 5
EN

Stack Overflow用户

发布于 2013-12-24 02:20:59

\w\b\w表示匹配:

  1. 字母数字字符(\w);后面跟着
  2. 从字母数字到非字母数字字符的转换(反之亦然) ('\b')。但没有任何实际的特征;其次是
  3. 字母数字字符(\w)。

关键是\b不消耗任何字符,它检查哪些字符与测试位置相邻。因此\w\b\w只匹配两个字符,两者都必须是字母数字(\w),它们之间的假想点必须在一边有字母数字,另一边必须有非字母数字,因此这是不可能匹配的。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20753930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档