【问题标题】:What is this regex doing?这个正则表达式在做什么?
【发布时间】:2011-10-24 03:29:04
【问题描述】:

我认为这个正则表达式是关于将单词转换为数组,但结果是 null

当我想用数组[0]从“facebox otherword”中获取第二个单词时

这是正则表达式:

this.rel.match(/facebox\[?\.(\w+)\]?/)

谢谢理查德

【问题讨论】:

  • 您的问题是关于正则表达式的作用或如何从“facebox otherword”中获取第二个单词?

标签: javascript regex match


【解决方案1】:

您的正则表达式匹配:

facebox.abc
脸盒[.abc
脸盒[.abc]
facebox.abc]

abc 至少是一个“单词字符”(字母、数字和下划线)。

【讨论】:

    【解决方案2】:

    http://xenon.stanford.edu/~xusch/regexp/analyzer.html 是一个简单的正则表达式分析器(等等)。 由于不可链接,这里只是截图和link:

    【讨论】:

    • 底部其实有一个“发送给朋友”的链接:xenon.stanford.edu/~xusch/regexp/…。看起来像一个很棒的工具,虽然它有时会剪切一些文本的方式很奇怪。
    • @Chris,谢谢,这就是我和我的注意力,我希望在网站顶部的某处以大字体看到“链接到此”。
    • @miku:我给了你怀疑的好处,并假设它只是一个新功能,因为你第一次开始使用该网站所以你没有注意到它。 ;-)
    【解决方案3】:

    相信你要找的是split()函数:

    您提到的将单词转换为数组通常称为split,因此如果您想从“facebox otherword”中获取“otherword”,您可以执行以下操作:

    var test = "facebox otherword"
    var word = test.split(' ')[1];
    

    Working Demo

    【讨论】:

    • 谢谢大家,我明白了,真的很有帮助!我想我会在这种情况下使用 split!
    【解决方案4】:

    /facebox\[?\.(\w+)\]?/

    • 匹配facebox字面量
    • 然后可选匹配[
    • 然后匹配.
    • 然后匹配任意单词
    • 然后可选匹配]

    【讨论】:

      【解决方案5】:

      检查包含在thisrel 属性中的字符串

      1. 包含文字'facebox'
      2. 后跟 0 或 1 个方括号
      3. 后跟一个点
      4. 后跟 1 个或多个单词字符
      5. 后跟 0 或 1 个右方括号

      如果匹配,则 1 个或多个单词字符将包含在子匹配中。

      【讨论】:

        【解决方案6】:

        由于\.,您那里的正则表达式不会匹配“facebook otherword”。它正在寻找文字“.”,因此它将匹配以下内容:“facebook.otherword”、“facebook[.otherword”、“facebook.otherword]”或“facebook[.otherword]”。

        【讨论】:

          【解决方案7】:

          这匹配如下文本:

          facebox[.blabla]
          facebox.blabla
          

          【讨论】:

            【解决方案8】:

            注意\.。这意味着它是一个点,而不是任何字符。这个正则表达式捕获facebox.otherword

            【讨论】:

              猜你喜欢
              • 2012-02-13
              • 2014-07-13
              • 1970-01-01
              • 1970-01-01
              • 2020-06-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多