【问题标题】:Javascript RegEx QuestionJavascript 正则表达式问题
【发布时间】:2011-02-05 18:01:00
【问题描述】:

如何使用 javascript/jquery 正则表达式找到下面的评论块:

  /*

    some description here

  */

它甚至可能看起来像:

  /* some description here
  */

或者

  /* some description here */

【问题讨论】:

    标签: javascript jquery regex


    【解决方案1】:

    我认为使用 php 会是:

    $pattern='/\/\*.*?/*///';
    

    $pattern='/\*[^*]*\*+([^/*][^*]*\*+)*/';

    把这个弄出来

    Improving/Fixing a Regex for C style block comments

    这是为了匹配空的评论块:

    ^\s+/\*{1,}\n(^\s*\*{1,}\s*)+\*{1,}/
    

    【讨论】:

    • 这不考虑回车或换行。我认为提问者需要能够检测具有多行的块 cmets。但是,它确实适用于单线。
    • @Levi Hackwith 它符合他说或没有说 AND 的最后一个要求:D
    • 问题不是明确说 Javascript 吗?
    • @Pointy 是的,他应该使用 $pattern 而不是 var pattern = myPattern.match()
    【解决方案2】:

    也许这个可以帮助你

    /(\/\*[.\S\s]*?\*\/)/g
    

    似乎在工作

    http://jsfiddle.net/WDhZP/

    【讨论】:

      【解决方案3】:

      这是一个实际的 Javascript 答案:

      var commentRegex = /\/\*([^/]|\/[^*])*\*\//;
      

      如果您需要一个版本来检查 整个 字符串是否是注释:

      var completeCommentRegex = /^\/\*([^/]|\/[^*])*\*\/$/m;
      

      解释:正则表达式匹配前导/*,后跟任意数量的除“/”以外的单个字符,或“/”后跟任何非星号,最后是结尾*/。第二个版本中的“m”标志确保嵌入的换行符不会弄乱“^”和“$”锚。

      最后,如果您真的想要评论文本,您可以在其中添加一个适当的带括号的块(在/* 之后和*/ 之前)。

      【讨论】:

        【解决方案4】:
        var match = myString.match(/\/\*([\w\W]*)\*\//)
        

        如果match !== nullmatch[0] 将包含注释,match[1] 将包含不带注释分隔符的注释。

        编辑:现在是多行;)

        【讨论】:

        • 使用[d\D] 而不是.。这将匹配换行符。至少在 .NET 中是这样的 =)
        • “*”和“/”不是单词字符吗?因此它们不会都匹配“\W”吗?确实,“[\w\W]”和“.”不一样吗?
        • . 不匹配 \n\W 匹配。更糟糕的是,您似乎无法将.[] 中的任何其他内容匹配。所以[.\n] 无效。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-09
        • 2011-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多