为什么这个评论正则表达式错了?

时间:2015-09-17 20:01:26

标签: regex comments

  

“/ *”[^ * /] *“* /”

匹配第一个/ *然后它等待除* /之外的任何字符,然后当它获得* /它将匹配整个正则表达式时,但是对于此注释例如:

  

/ * bruno / braga * /

有人可以告诉我为什么/不匹配? 谢谢。

2 个答案:

答案 0 :(得分:0)

  

为什么评论正则表达式错误?

由于正则表达式存在一些问题:

  1. 其中所有不必要的引号"
  2. 当你开始一个带有否定符号的角色类时:[^]它会否定其中的所有内容,在你的例子中它会否定空间,因为你已将它包括在内。此外,角色{{ 1}}存在于输入字符串的中间,你可能只想在"结束评论"的上下文中跟随/时才禁止它。 - *
  3. 正如stribizhev在上面的评论中已经提到的那样 - */是一个特殊字符,应该被转义。同样适用于*
  4. /之后正则表达式中存在的空格(输入字符串/*不包含此类空格)
  5. 关闭评论的最后一个星号和斜杠之间的空格:/*bruno...
  6. 总结以上所有要点,正则表达式应更正为:

    * /

    请参阅DEMO

    跟进路易斯的评论:如果您想在评论中添加\/\*[^\*]*\*\/ 符号,可以使用:

    *

    参见 DEMO

答案 1 :(得分:0)

正确的正则表达式匹配评论(允许所有内容但只有*/序列,您必须首先允许除*之外的任何字符,或*后跟除{/以外的任何字符{1}},所以

/\*([^\*]|\*[^/])*\*/

请参阅Demonstration

应该做的工作(请记住,在演示正则表达式分隔符是/所以它们是用反斜杠转义的,也许你必须这样做才能在代码中转义。