Php 新闻内容块和自定义正则表达式
我需要创建一个小工具,通过php软件为我的编辑创建一篇新闻文章。我创建了一种使用自定义块和模块的方法,以帮助编辑器在文本中包含静态或动态块和模块: 示例: Lorem ipsum dolor sit amet,是一位杰出的献身者。莫利斯自由城的艾蒂安。大叶舌草{block name=“ads1”}Aenean lacinia lacinia sapien nec发酵液{module name=“thename”class=“Thelist”method=“Show”parameter1=“first parameter”parameter2=“second parameter”parameter3=“third parameter”}完成以下操作:。Donec塞德十字勋章利奥 我使用两个正则表达式:Php 新闻内容块和自定义正则表达式,php,regex,module,block,Php,Regex,Module,Block,我需要创建一个小工具,通过php软件为我的编辑创建一篇新闻文章。我创建了一种使用自定义块和模块的方法,以帮助编辑器在文本中包含静态或动态块和模块: 示例: Lorem ipsum dolor sit amet,是一位杰出的献身者。莫利斯自由城的艾蒂安。大叶舌草{block name=“ads1”}Aenean lacinia lacinia sapien nec发酵液{module name=“thename”class=“Thelist”method=“Show”parameter1=“fir
$ex=preg_match_all(“/{((?:模块|块)。*?)}/sm,$text,$matches)代码>
preg\u match\u all('/^{module\s+\G(name | class | method)=(“[^”]+“[^\']+\'[^\']+\'.\s+(?=}$)/i',$module,$matches);
第二个正则表达式没有得到所有参数,只有一个!我需要得到编辑在新闻文章内容中写入的所有参数。您没有搜索它们
^{module\s+|\G(name|class|method|parameters)=("[^"]+"|\'[^\']+\'|\S+)(?:\s+|(?=}$))
^
您搜索术语参数
,后面跟着一个=
,但它不存在。您将它们命名为参数1
,依此类推。因此更改为
^{module\s+|\G(name|class|method|parameter\d+)=("[^"]+"|\'[^\']+\'|\S+)(?:\s+|(?=}$))
应该可以帮助你。也许可以试着分两步来做 1查找所有模块
preg_match_all( '(.*{module(.+)}.*)Ui', $module, $matches );
或
2查找每个模型/块的参数
preg_match_all ( '(([a-zA-Z0-9]+)=\"(.+)\")Ui', $module, $matches );
你好,Stema,谢谢你的回复。我发布了一个错误的正则表达式。我已经删除了正则表达式中的“参数”项。我的目标是在“方法”参数之后写入任何(key=value)。你好,Sukisan,你只提到了模块,我如何获得块呢?你可以为这两种情况更改第一个模式
preg_match_all ( '(([a-zA-Z0-9]+)=\"(.+)\")Ui', $module, $matches );