我想使用Text::Balanced
提取一些使用{{
... }}
和[[
... ]]
来标记其超链接的标记。例如:
This line contains {{path:to:mediafile|a hyperlink}} and [[path:to:page|another]] too.
extract_bracketed()
是明智的,因为它知道括号对 - {}
,[]
,<>
,()
- 并寻找开放和关闭括号相同&#34;形状&#34;。但是,我无法使用它,因为它只适用于单字符括号。
我可以使用extract_tagged()
找到一种类型的&#34;胖支架&#34;一次,如果它理解几个对称括号对,那将会很好。
有没有办法使用Text :: Balanced来提取由{{
和}}
,[[
和]]
包围的字符串,而不是{{
和]]
,例如?
答案 0 :(得分:0)
由于它们不能嵌套,因此可以在没有Text :: Balanced的情况下轻松完成。
s/
\{\{ ( (?:(?!\}\}).)* ) \}\}
|
\[\[ ( (?:(?!\]\]).)* ) \]\]
/
defined($1) ? handle_curlies($1) : handle_squares($2)
/sexg