Regex drupal自定义过滤器模块-替换模式

Regex drupal自定义过滤器模块-替换模式,regex,drupal,filter,Regex,Drupal,Filter,我把网站从phpBB迁移到D7,附件并没有通过。它们被纳入论坛机构。我有bbcode过滤器。要将[attachment]的所有实例更改为[img],并添加php以包含正确的路径。这样做的模块是 我的例子是: 替换 [attachment]photo.jpg[/attachment] 与 我不理解正则表达式和模式似乎不喜欢[]括号 非常感谢任何帮助我无法帮助您解决URL修复问题,但我可以解决以下问题 用正则表达式匹配方括号 在正则表达式中,方括号:[]是元字符(用于定义表达式)。要匹配目标字符串

我把网站从phpBB迁移到D7,附件并没有通过。它们被纳入论坛机构。我有bbcode过滤器。要将
[attachment]
的所有实例更改为
[img]
,并添加php以包含正确的路径。这样做的模块是

我的例子是:

替换

[attachment]photo.jpg[/attachment]

我不理解正则表达式和模式似乎不喜欢
[]
括号


非常感谢任何帮助

我无法帮助您解决URL修复问题,但我可以解决以下问题

用正则表达式匹配方括号 在正则表达式中,方括号:
[]
是元字符(用于定义表达式)。要匹配目标字符串中的方括号(或任何其他正则表达式元字符),需要在正则表达式模式中使用反斜杠对其进行转义。因此,要匹配:
[tag]
,模式需要是:
\[tag\]
。(实际上,从技术上讲,结束方括号不是一个元字符,但我还是想避开它——这没有什么坏处,更好地传达了我们想要匹配文字的意思:
]

PHP函数:
attachment2img()
下面测试的PHP函数将所有:
[attachment]file.jpg[/attachment]
标记转换为:
[img]file.jpg[/img]
标记。请注意,此函数仅更改内容结尾为:
.jpg
.jpeg
.gif
.png
的附件标记(以将其仅限于图像文件)

函数附件2img($text){
返回预更换('%
#匹配[attachment]image.jpg[/attachment]结构。
\[附件\]#附件打开标签。
(#$1:附件内容。
[^[\]]+#图像URL至扩展名。
\.#用点分隔的分机。
(?:#允许的图像扩展组:
jpe?g#a.jpg或.jpeg,
|gif#或.gif,
|png#或.png扩展名。
)#允许的图像扩展的结束组。
)#结束$1:附件内容。
\[/attachment\]#附件结束标记。
%九‘,‘[img]$1[/img]',$text);
}
上面的正则表达式是在自由扩展模式下编写的,并且被完全注释(注意模式字符串末尾的“x”标志修饰符)。所有非平凡的正则表达式都应该以这种方式编写,以提高可读性和可维护性

输入示例:

These should match:
stuff [attachment]simplefile.jpg[/attachment] more stuff.
stuff [attachment]relative/path/file.jpeg[/attachment] more stuff.
stuff [attachment]http://domain.com/path/file.gif[/attachment] more stuff.
These should NOT match:
stuff [attachment]file.zip[/attachment] more stuff.
stuff [attachment]file_jpg[/attachment] more stuff.
stuff [attachment]file.jpg.txt[/attachment] more stuff.
stuff [attachment]file.nonimage[/attachment] more stuff.
These should match:
stuff [img]simplefile.jpg[/img] more stuff.
stuff [img]relative/path/file.jpeg[/img] more stuff.
stuff [img]http://domain.com/path/file.gif[/img] more stuff.
These should NOT match:
stuff [attachment]file.zip[/attachment] more stuff.
stuff [attachment]file_jpg[/attachment] more stuff.
stuff [attachment]file.jpg.txt[/attachment] more stuff.
stuff [attachment]file.nonimage[/attachment] more stuff.
示例输出:

These should match:
stuff [attachment]simplefile.jpg[/attachment] more stuff.
stuff [attachment]relative/path/file.jpeg[/attachment] more stuff.
stuff [attachment]http://domain.com/path/file.gif[/attachment] more stuff.
These should NOT match:
stuff [attachment]file.zip[/attachment] more stuff.
stuff [attachment]file_jpg[/attachment] more stuff.
stuff [attachment]file.jpg.txt[/attachment] more stuff.
stuff [attachment]file.nonimage[/attachment] more stuff.
These should match:
stuff [img]simplefile.jpg[/img] more stuff.
stuff [img]relative/path/file.jpeg[/img] more stuff.
stuff [img]http://domain.com/path/file.gif[/img] more stuff.
These should NOT match:
stuff [attachment]file.zip[/attachment] more stuff.
stuff [attachment]file_jpg[/attachment] more stuff.
stuff [attachment]file.jpg.txt[/attachment] more stuff.
stuff [attachment]file.nonimage[/attachment] more stuff.

希望这能给你一个好的开始。

你有不是图像的附件吗?另外,我看到这是你在这里的第一篇帖子。请阅读提问指南-最好提供具体的示例输入、预期输出、您尝试过的内容等。