dongzhao3040 2017-05-22 16:24
浏览 24
已采纳

PHP正则表达式 - 如何提取所有出现的模式

I have a string that contains multiple WIKI-type tags. e.g. [[TAG:4567]]. I need to identify/extract all tags from the string so I can perform substitution later.

For example, for this string:

this is a test [[TITLE]] of more test [[LINK:27654]]

I want an array of:

0: [[TITLE]]
1: [[LINK:27654]]

I thought that PHP preg_match might work, but it returns a whole bunch of extra character between the regexp matches. But I think it only works with one match in the subject string. This is what I tried:

$subject = "this is a test [[TITLE]] of more test [[LINK:27654]]";
preg_match( '/(?<=\[\[)(.*)(?=\]\])/', $subject, $matches );
print_r($matches);

But it gives me:

Array ( 
    [0] => TITLE]] of more test [[LINK:27654 
    [1] => TITLE]] of more test [[LINK:27654 
) 

Which isn't what I need. Is there a simple way to extract the tags? I'd really like to avoid iterating through the string and extracting manually.

  • 写回答

2条回答 默认 最新

  • doufan9395 2017-05-22 16:27
    关注

    Try this code snippet here

    <?php
    
    ini_set('display_errors', 1);
    $subject = "this is a test [[TITLE]] of more test [[LINK:27654]]";
    preg_match_all('/\[\[.*?\]\]/', $subject, $matches );
    print_r($matches);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值