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