php - 如何检查正则表达式中的任何内容

标签 php regex

我有 3 个版本的字符串:

  1. [center][thumb]http://some_domain.com/uploads/posts/2010-04/1271272006_tn.jpg[/thumb][/center]
  2. [center][img]http://some_domain.com/uploads/posts/2012-01/1325796885.jpg[/img][/center]
  3. [img]http://some_domain.com/uploads/posts/2012-01/1325796885.jpg[/img]

它也可以是[left][/left][right][/right]。前两个我通过 /\[(center|left|right)\]\[(img|thumb)\](.*)?\[(\/img|\/thumb)\]\[(\/center|\/left|\/right)\]/,但是第三个有一个问题:如何检查“前一个”是否不存在?

附注 我只需要获取网址。

最佳答案

为什么不直接删除那些“标签”呢?

$buffer = strtr($input, array('[' => '<', ']' => '>'));
$url = strip_tags($buffer);

参见strtrDocsstrip_tagsDocs

对于您的三个示例,这是:

http://some_domain.com/uploads/posts/2010-04/1271272006_tn.jpg
http://some_domain.com/uploads/posts/2012-01/1325796885.jpg
http://some_domain.com/uploads/posts/2012-01/1325796885.jpg

关于php - 如何检查正则表达式中的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206234/

相关文章:

php - sql mysql 选择列 IF

Java简单正则表达式错误

java - 如何解析正弦函数?

Java 使用正则表达式匹配器获取组

python - 使用正则表达式查找并替换每个匹配的任意数量的元素

javascript - jqplot转换为图像不显示y轴html

php 在数组范围内查找值

php - for() 循环显示 $row_record[] 一次但显示 $message $i 次 - PHP

php - 在同一页面上提交表单时如何预填充下拉列表?

ColdFusion 8 中西类牙语字母的正则表达式