正则表达式与递归表达式匹配嵌套大括号?

前端之家收集整理的这篇文章主要介绍了正则表达式与递归表达式匹配嵌套大括号?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试匹配像sp {… {…} …}这样的文本,允许花括号嵌套.这是我到目前为止:
  1. my $regex = qr/
  2. ( #save $1
  3. sp\s+ #start Soar production
  4. ( #save $2
  5. \{ #opening brace
  6. [^{}]* #anything but braces
  7. \} #closing brace
  8. | (?1) #or nested braces
  9. )+ #0 or more
  10. )
  11. /x;@H_404_2@
  12. 我无法让它与以下文字匹配:sp {{word}}.任何人都可以看到我的正则表达式有什么问题吗?

有很多问题.递归位应该是:
  1. (
  2. (?: \{ (?-1) \}
  3. | [^{}]+
  4. )*
  5. )@H_404_2@
  6. 全部一起:

  7. my $regex = qr/
  8.    sp\s+
  9.    \{
  10.       (
  11.          (?: \{ (?-1) \}
  12.          |   [^{}]++
  13.          )*
  14.       )
  15.    \}
  16. /x;
  17. print "$1\n" if 'sp { { word } }' =~ /($regex)/;@H_404_2@

猜你在找的正则表达式相关文章