新闻内容块和自定义正则表达式
我需要创建一个小工具,通过 PHP 软件为我的编辑创建一篇新闻文章。我创建了一种使用自定义块和模块来帮助编辑器包含静态或动态块和模块的方法,仅包含在文本中:
示例:
Lorem ipsum dolor sat amet,consectetur adipiscing elit。 Etiam 在 mollis libero 中。菜豆 (Phasellus sollicidin ligula pharetra magna egestas mattis)。 {block name="ads1"} Aenean lacinia lacinia sapien nec发酵。 {模块名称=“thename”类=“Thelist”方法=“显示”parameter1=“第一个参数”parameter2=“第二个参数”parameter3=“第三个参数”}Donec ligula lectus, egestas et molestie ac,tristique id mi。 Donec sed scelerisque leo。
我使用两个正则表达式:
$ex = preg_match_all("/{((?:module|block).*?)}/sm", $text, $matches);
preg_match_all ( '/^{模块\s+|\G(名称|类|方法)=("[^"]+"|\'[^\']+\'|\S+)(?:\s+|(?= }$))/i', $module, $matches );
第一个获取新闻文章中的所有项目,第二个将数组中的每个块和模块分开
问题:< /强> 第二个正则表达式没有获取所有参数,而只获取一个!我需要获取编辑在新闻文章内容中写入的所有参数。
I need to create a little facility to create a news article to my editors by a php software. I have created a way to use a custom block and module to help the editors to include static or dynamic blocks and modules just including in the text:
Example:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in mollis libero. Phasellus sollicitudin ligula pharetra magna egestas mattis. {block name="ads1"} Aenean lacinia lacinia sapien nec fermentum. {module name="thename" class="Thelist" method="Show" parameter1="first parameter" parameter2="second parameter" parameter3="third parameter"} Donec ligula lectus, egestas et molestie ac, tristique id mi. Donec sed scelerisque leo.
I am using two regex:
$ex = preg_match_all("/{((?:module|block).*?)}/sm", $text, $matches);
preg_match_all ( '/^{module\s+|\G(name|class|method)=("[^"]+"|\'[^\']+\'|\S+)(?:\s+|(?=}$))/i', $module, $matches );
The first one get all the items in the news article. The second one splits every block and modules in an array.
The question:
The second regex doesn't get all the parameters but just one! I need to get all the parameters that the editor writes in the content of the news article.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你不是在寻找他们。
您搜索后跟
=
的术语parameters
,但这并不存在。您将它们命名为parameter1
等等。所以改变应该对你有帮助。
You are not searching for them.
You search for the term
parameters
followed by a=
, but this does not exist. You named themparameter1
and so on. So change toshould help you.
也许尝试分两步进行:
1 查找所有模块
或
2 查找每个模型/块的参数
Maybe try to do it in 2 steps
1 to find all modules
or
2 to find parameters for each model/block