search

Home  >  Q&A  >  body text

javascript - 正则表达式中/\bjava\b/和/^java$/是一个意思么?

平时正则用得不多,今天偶尔翻了下,这个\b有点晕

伊谢尔伦伊谢尔伦2816 days ago602

reply all(5)I'll reply

  • 伊谢尔伦

    伊谢尔伦2017-04-10 15:05:41

    \b

    匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配 "never" 中的 'er',但不能匹配
    "verb" 中的 'er'

    ^

    匹配输入字符串的开始位置。例如,^Wang 可以匹配 "Wangxf" 中的Wang,但不能匹配 "woshiWangxf"
    中的Wang

    $

    匹配输入字符串的结束位置。例如,xf$ 可以匹配 "Wangxf" 中的xf,但不能匹配 "Wangxfshiwo"
    中的xf

    组合起来

    ^Wangxf$可以匹配字符串"Wangxf",但不能匹配"woshiWangxf""Wangxfshiwo"

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:05:41

    \b一般指单词边界(空格、空行、标点、tab、行首字、行尾等都算),如“a java program”中java两边都是空格,就可以匹配上。^和$算是\b的一种情况。

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 15:05:41

    不是一个意思

    \b 是单词分隔符
    ^ 是字符串的起始位置(比如一行文本的开头)
    $ 是字符串的末尾(比如行尾)

    比如用楼主的两个正则尝试匹配字符串
    java is the best language in the world
    的话, \bjava\b 可以匹配到 java, 而 ^java$ 则无法匹配成功

    reply
    0
  • 黄舟

    黄舟2017-04-10 15:05:41

    不一样。\b匹配的是java前后的位置,找到空格+java+空格,而^和$匹配的是整个匹配字符串的开始和结束位置,开始必须是j+av+a结尾。

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:05:41

    \b说白了,就是单词和单词之间的分割符,很明显只要是空白就可以

    reply
    0
  • Cancelreply