嵌套注释的Regex



是否有检测嵌套注释的正则表达式规则?用";嵌套通信网";我的意思是:

/* something /* something */ something  */

我不想要一个检测到这样东西的规则:

/* something inside /* something inside */ something inside */ something outside /*something inside */

我希望something outside之后的注释是一个新的检测。非常感谢。

如果您使用像PCRE(Perl、PHP等(这样支持递归的正则表达式引擎,这是可能的。

您可以使用此正则表达式来捕获嵌套的注释:

/*(?:(?!/*|*/).|(?R))**/
  • /*匹配/*
  • (?:...)非捕获组
  • (?!/*|*/).任何不构成/**/的字符
  • |
  • (?R)递归整个规则,这就是/* ... */的整个结构
  • */匹配*/

检查校对

但如果没有递归,你只能用你使用的任何编程语言带来的逻辑来实现它。


如果你想捕捉评论之外的内容,你可以尝试

(/*(?:(?!/*|*/).|(?1))**/)|((?:(?!(?1)).)+)

它们存储在不同的组中。

检查校样

最新更新